活动分析

plot_activity(data[, col, figsize, dpi, ...])

绘制个体的活动图

entropy(sequence)

计算熵。

entropy_rate(sequence)

计算熵率。

ellipse_params(data[, col, confidence, epsg])

点数据的置信椭圆参数估计

ellipse_plot(ellip_params, ax, **kwargs)

输入置信度椭圆的参数并绘制置信度椭圆

活动图

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()
_images/output_1_0.png

输入数据与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()
_images/output_3_0.png