如何使直方图列的宽度完全相同

时间:2016-12-10 20:32:39

标签: python matplotlib histogram

我在操纵直方图方面遇到了一些麻烦。我有一个带有两列的df,我将它们绘制为堆积直方图。我将它们放入特定的箱子中(见下面的代码),但我想在最后(4000-10000)制作一个大箱子。但是,默认情况下,大容器的列宽是巨大的。有没有办法使这个大容器的大小不大?即使它们的x范围不均匀,所有列的宽度都相同?

代码:

df.plot.hist(stacked=True, bins=[0,400,800,1200,1600,2000,2400,2800,3200,3600,4000,10000],normed= True)

enter image description here

谢谢!!!

编辑:

根据建议,尝试提供示例数据集。原油但也许它有助于说明问题..

df = pd.DataFrame(np.random.randint(0,4000,size=(100, 2)), columns=['A','B'])
df['A'].loc[85:89] = np.random.randint(5000,10000, size=5)
df.plot.hist(stacked=True, bins=[0,400,800,1200,1600,2000,2400,2800,3200,3600,4000,10000],normed= True)

1 个答案:

答案 0 :(得分:1)

使所有垃圾箱大小相同,然后将数据剪辑到最后一个垃圾箱的右端。

df = pd.DataFrame(np.random.randint(0,4000,size=(100, 2)), columns=['A','B'])
df['A'].loc[85:89] = np.random.randint(5000,10000, size=5)
bins = [0,400,800,1200,1600,2000,2400,2800,3200,3600,4000,4400]
df.clip(upper=4400).plot.hist(stacked=True, bins=bins, normed=True)

histogram

考虑到,正如评论中所指出的,这不是一个真正的直方图。您可能希望自定义标签以反映最后一个bin实际上比它看起来更大的事实。