【问题标题】:How do you plot relative frequency in python你如何在python中绘制相对频率
【发布时间】:2012-10-18 03:07:00
【问题描述】:

我希望在 Python 中绘制一堆数字的相对频率。我需要使用hist 函数,我在这个网站的其他地方查看过,但没有找到任何东西。

我正在做以下事情

x = array ([6.36,6.34,6.36,6.73,7.36,6.73])
hist (x)

当我这样做时,我得到了一个频率图,我如何使它成为相对频率?

【问题讨论】:

  • 你在使用matplotlib吗?如果没有,您使用的是什么库,因为这不在标准 python 中?
  • 这不是您问题的答案吗? stackoverflow.com/questions/9767241/…
  • 我正在使用 matplotlib.pyplot 我之前看过那个问题并尝试使用 normed=1 但我仍然没有得到它我尝试过 hist(x/x.sum()) 但这减少了x 轴上的数字的值并且不会改变它们的频率,所以 y 轴没有变化 感谢您的建议
  • 任何其他建议@larsmans
  • 你解决过这个问题吗?

标签: python matplotlib histogram frequency


【解决方案1】:
hist(x, density=True)

关键字density 将绘制数据以使积分为1 (doc)。对于旧版本的 Matplotlib,您需要改用 normed

如果您希望总和(而不是积分)为一

x = randn(30)
count,bins = np.histogram(x)
bar(bins[:-1],count,width = np.mean(np.diff(bins)))

【讨论】:

  • normed 已弃用。您可以改用density。它使积分(不是总和)等于 1。
  • @root 感谢您的评论!答案已相应更新。
  • 愚蠢的问题:积分等于 1 与总和为 1 有什么区别?
  • @neither-nor Integral 是每个 bin 下面积的总和(高度乘以 bin_width),因此只有当您的 bin 宽度为 1 时它们才相等。
猜你喜欢
  • 2011-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-20
  • 1970-01-01
  • 1970-01-01
  • 2013-06-29
相关资源
最近更新 更多