Python为不同的bin大小显示相同的bin宽度

时间:2017-05-10 15:17:40

标签: python matplotlib

我有这段代码

bins = [0,1,10,20,30,40,50,75,100]
plt.figure(figsize=(15,15))
plt.hist(df.v1, bins = bins)

我的问题是,图中显示的bin宽度与bins中的范围成正比。但是,我希望所有的箱子都有相同的宽度。

1 个答案:

答案 0 :(得分:0)

我不确定你如何理解结果,但你可以使用numpy.histogram来计算条形的高度,然后直接将它们绘制成任意x尺度。

x = np.random.normal(loc=50, scale=200, size=(2000,))
bins = [0,1,10,20,30,40,50,75,100]
fig = plt.figure()
ax = fig.add_subplot(211)
ax.hist(x, bins=bins, edgecolor='k')
ax = fig.add_subplot(212)
h,e = np.histogram(x, bins=bins)
ax.bar(range(len(bins)-1),h, width=1, edgecolor='k')

enter image description here