直方图Pyplot y轴缩放

时间:2017-04-05 17:22:08

标签: python matplotlib plot histogram

我无法按频率而非按计数缩放Y轴直方图(这就是我现在所拥有的)。我想要它从0 - 1而不是0 - 10000.因为它是一个直方图,我不能简单地除以10,000。有什么建议?

这是我的代码&图表

1 个答案:

答案 0 :(得分:0)

pyplot.hist documentation我们看到hist有一个参数normed,这是density的别名:

  

density:布尔值,可选
  如果为True,则返回元组的第一个元素将是规范化以形成概率密度的计数,即直方图下的面积(或积分)将总和为1.这是通过将计数除以观察次数来实现的。箱宽度并没有除以观测总数。如果stacked也为True,则直方图的总和标准化为1。

您可以使用它来获得标准化的直方图。

如果您希望计数总和为1,独立的bin宽度,您可以简单地将直方图除以其总和。这将是一个两步过程

hist, bins_ = np.histogram(results)
freq = hist/np.sum(hist)
plt.bar(bins_[:-1], freq, align="edge", width=np.diff(bins_))

通过提供适当的重量,可以在一步中实现同样的效果

hist, bins_ = plt.hist(results, weights=np.ones_like(results)/np.sum(results) )