hist() - 如何强制相等的bin宽度?

时间:2014-05-01 11:13:06

标签: matplotlib pandas

假设我有以下数组:[1,1,1,2,2,40,60,70,75,80,85,87,95]并且我想根据以下二进制文件创建一个直方图 - x<=2[3<=x<=80][x>=81]。< / p>

如果我执行以下操作:arr.hist(bins=(0,2,80,100))我将垃圾箱放在不同的宽度(基于它们的x范围)。我希望它们代表不同的尺寸范围,但在直方图中以相同的宽度出现。是否有可能以优雅的方式?

我可以考虑为此添加一个新列(保存将根据我想要的边界计算的bin id)但不是非常喜欢这个解决方案..

谢谢!

1 个答案:

答案 0 :(得分:1)

听起来你想要一个条形图;您可以使用bar

import numpy as np
import matplotlib.pyplot as plt
arr=np.array([1,1,1,2,2,40,60,70,75,80,85,87,95])
h=np.histogram(arr,bins=(0,2,80,100))
plt.bar(range(3),h[0],width=1)
xlab=['x<=2', '3<=x<=80]', 'x>=81']
plt.xticks(arange(0.5,3.5,1),xlab)