pyplot hist显示的bin计数与实际计数不匹配?

时间:2016-10-06 01:05:46

标签: python matplotlib

我有一份整体列表 - 我称之为'小时1' - 范围从0到23。现在这个列表适用于'小时' 24小时制的一天。但是,我希望将其转换为不同的时区(向上移动7小时)。这很简单,我这样做,现在我有2个列表:hours1和hours2。

我使用以下代码绘制直方图:

bins = range(24)
plt.hist(hours,bins=bins, normed=0, facecolor='red', alpha=0.5)
plt.axis([0, 23, 0, 1000])

它适用于小时1。对于hours2,最后一个值(23s的bin的值)太高。这不是计数错误/转换错误,因为当我计算我的hours2列表时,我得到604 23s,这与我期望的相匹配(小时数为604 16)。

所以这是一个非常冗长的说法,当我自己计算数据时,箱子的高度与我得到的不相符......

1 个答案:

答案 0 :(得分:0)

这个问题是一个分档。简而言之,我没有注意/思考我想要展示的内容。更具体地说,这是正确的代码:

bins = range(25)
plt.hist(hours, normed=0, facecolor='green', alpha=0.5, bins=bins)
plt.axis([0, 24, 0, 1500])

也就是说,一天有23个小时,这意味着24个单独的'小时箱'计数为0.但正确的边缘值是bins = range(25)(因此23个被置于23-24)正确的轴是0到24,(所以bin 23的宽度为1)。简单的错误,但我想我们都在那里并且完成了那个?