活动分析
|
绘制个体的活动图 |
|
计算熵。 |
|
计算熵率。 |
|
点数据的置信椭圆参数估计 |
|
输入置信度椭圆的参数并绘制置信度椭圆 |
活动图
- transbigdata.plot_activity(data, col=['stime', 'etime', 'group'], figsize=(10, 5), dpi=250, shuffle=True, xticks_rotation=0, xticks_gap=1, yticks_gap=1, fontsize=12)
绘制个体的活动图
- 参数:
data (DataFrame) – 一个人的活动信息
col (List) – 列名[starttime,endtime,group],`group`控制颜色分组
figsize (List) – 体形尺寸
dpi (Number) – 图形的dpi
shuffle (bool) – 是否将活动顺序随机打乱
xticks_rotation (Number) – xticks的旋转角度
xticks_gap (Number) – xticks 的间隙
yticks_gap (Number) – yticks 的间隙
fontsize (Number) – xticks 和 yticks 的字体大小
熵
- transbigdata.entropy(sequence)
计算熵。
- 参数:
sequence (List,DataFrame,Series) – 序列数据
- 返回:
熵
- 返回类型:
Number
- transbigdata.entropy_rate(sequence)
计算熵率。参考文献:Goulet-Langlois, G., Koutsopoulos, H. N., Zhao, Z., & Zhao, J. (2017). Measuring regularity of individual travel patterns. IEEE Transactions on Intelligent Transportation Systems, 19(5), 1583-1592.
- 参数:
sequence (List,DataFrame,Series) – 序列数据
- 返回:
熵率
- 返回类型:
Number
置信椭圆
- transbigdata.ellipse_params(data, col=['lon', 'lat'], confidence=95, epsg=None)
点数据的置信椭圆参数估计
- 参数:
data (DataFrame) – 点数据
confidence (number) – 置信度:99,95 或 90
epsg (number) – 如果给定,原始坐标将从 WGS84 转换为给定的 EPSG 坐标系,以进行置信椭圆参数估计
col (List) – 列名,[lon,lat]
- 返回:
参数 – 质心椭圆参数[位置,宽度,高度,θ,面积,扁率] 分别[中心点坐标,短轴,长轴,角度,面积,扁率]
- 返回类型:
List
- transbigdata.ellipse_plot(ellip_params, ax, **kwargs)
输入置信度椭圆的参数并绘制置信度椭圆
- 参数:
ellip_params (List) – 质心椭圆参数[位置、宽度、高度、θ、面积、扁率] 分别[中心点坐标、短轴、长轴、角度、面积、扁率]
ax (matplotlib.axes._subplots.AxesSubplot) – 在哪里绘制
用法
import pandas as pd
import transbigdata as tbd
import numpy as np
#生成测试用数据
data = np.random.uniform(1,10,(100,2))
data[:,1:] = 0.5*data[:,0:1]+np.random.uniform(-2,2,(100,1))
data = pd.DataFrame(data,columns = ['x','y'])
#绘制数据分布
import matplotlib.pyplot as plt
plt.figure(1,(5,5))
#绘制数据点
plt.scatter(data['x'],data['y'],s = 0.5)
#绘制坐标轴
plt.plot([-10,10],[0,0],c = 'k')
plt.plot([0,0],[-10,10],c = 'k')
plt.xlim(-15,15)
plt.ylim(-15,15)
plt.show()
输入数据与xy坐标所在列名,置信度,估计椭圆参数 分别代表[中心点坐标,短轴,长轴,角度,面积,扁率
ellip_params = tbd.ellipse_params(data,confidence=95,col = ['x','y'])
ellip_params
[array([5.78928146, 2.88466235]),
4.6981983145616875,
14.04315715927693,
-58.15524535916836,
51.8186366184246,
0.6654457212665993]
再用tbd.ellipse_plot绘制置信椭圆
#绘制数据分布
import matplotlib.pyplot as plt
plt.figure(1,(5,5))
ax = plt.subplot(111)
#绘制数据点
plt.scatter(data['x'],data['y'],s = 0.5)
#获取置信椭圆参数并绘制椭圆
#99%置信椭圆
ellip_params = tbd.ellipse_params(data,confidence=99,col = ['x','y'])
tbd.ellipse_plot(ellip_params,ax,fill = False,edgecolor = 'r',linewidth = 1)
#95%置信椭圆
ellip_params = tbd.ellipse_params(data,confidence=95,col = ['x','y'])
tbd.ellipse_plot(ellip_params,ax,fill = False,edgecolor = 'b',linewidth = 1)
#90%置信椭圆
ellip_params = tbd.ellipse_params(data,confidence=90,col = ['x','y'])
tbd.ellipse_plot(ellip_params,ax,fill = False,edgecolor = 'k',linewidth = 1)
#绘制坐标轴
plt.plot([-10,10],[0,0],c = 'k')
plt.plot([0,0],[-10,10],c = 'k')
plt.xlim(-15,15)
plt.ylim(-15,15)
plt.show()