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