假设我有以下数组:[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)但不是非常喜欢这个解决方案..
谢谢!
答案 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)