如何使用matplotlib绘制周期性数据

时间:2016-03-17 02:28:01

标签: python matplotlib

我的数据记录系统具有中心值[0,10,20,... 350],并假设数据从中心点均匀收集。因此,我想绘制以这种方式分类的直方图:[ - 5,5],[5,15],[15,25] ...... [345,355]。

问题在于,数据存储在[0,360]中,这将使初始和结束扇区只占数据的一半。

简单地说,当我想绘制[-5,5]的数据时,绘制的实际数据只有大小的一半,因为[-5,5]被分成[ 0,5]和[355,360]。您可以在下面的图片中查看0355垃圾箱。

bins=np.arange(-5, 360 + 10, 10)
df['dir'].hist(bins=bins, alpha=0.5, figsize=(15, 3))

enter image description here

我的问题是:

  1. 绘制循环数据的好方法是什么,所以我可以解决half size问题?
  2. 情节在-50有一个重要的部门开头,有没有办法摆脱它?

1 个答案:

答案 0 :(得分:2)

1: 如果你不想要道路工程师建议的美丽的极地情节,而是想保留你的线性条形图,你应该指定任何值> 355到0 bin,例如,

wrapped = np.array(df['dir'])
wrapped[wrapped > 355] = 0
plt.hist(wrapped, bins=np.arange(0,370,10), align='left')

(align ='left'绘制你的箱子,例如,-5..5,5..15等,给定的数据值范围为0..355)

2: 现在摆脱左边那个不需要的空间:

plt.axis('tight')