当所有值都在1 bin中时,对齐pyplot直方图

时间:2015-10-21 02:28:43

标签: python matplotlib

这是可重现的问题。当在第一个示例中绘制指示符变量时,在0和1状态都存在密度,一切看起来都很好。 (我打算将x轴从0切换到1,但是将其保留下来以便与下一部分进行比较。)

plt.hist([np.append(np.zeros(1), np.ones(9)), np.ones(10)], normed=True)
plt.xlim([0,1.2])
plt.ylim([0,10])

enter image description here

但是,如果我在所有密度都处于第二状态的情况下进行绘制,那么突然间,条形移动到1.0标记的右侧,如果我限制轴,则消失;

plt.hist([np.ones(10), np.ones(10)], normed=True)
plt.xlim([0,1.2])
plt.ylim([0,10])

enter image description here

1 个答案:

答案 0 :(得分:2)

对于不同的数据集,动态选择的二进制文件将不同。尝试在plt.hist()调用中添加类似bins=np.arange(0,1.1,.1)的内容,它们应该看起来一样。

plt.hist返回的内容之一是它选择的垃圾箱列表。在第一个例子中,它给出了[ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. ],它相当于np.arange(0,1.1,.1)。由于数据不包含任何数据,因此第二个图不需要容纳零,因此plt.hist选择[ 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2, 1.3, 1.4, 1.5]