在matplotlib直方图中设置相对频率

9 浏览
0 Comments

在matplotlib直方图中设置相对频率

我有一组浮点数作为数据,并且想将其绘制成直方图。Hist()函数完美地绘制了绝对直方图。然而,我无法找到如何以相对频率格式表示它 - 我希望将其作为y轴上的分数或理想情况下作为百分比。

以下是代码:

fig = plt.figure()

ax = fig.add_subplot(111)

n, bins, patches = ax.hist(mydata, bins=100, normed=1, cumulative=0)

ax.set_xlabel('Bins', size=20)

ax.set_ylabel('Frequency', size=20)

ax.legend

plt.show()

我认为normed=1参数会实现这一点,但它给出的分数太高,有时大于1。它们似乎还依赖于箱子的大小,好像它们没有通过箱子的大小进行归一化或其他处理。然而,当我将cumulative=1时,它很好地总和为1。那么,问题出在哪里呢?顺便说一下,当我将相同的数据输入Origin并绘制时,它给出了完全正确的分数。谢谢!

0