【问题标题】:Hist in matplotlib: Bins are not centered and proportions not correct on the axismatplotlib 中的 Hist:bin 未居中且轴上的比例不正确
【发布时间】:2013-07-03 14:58:30
【问题描述】:

看看这个例子:

 import matplotlib.pyplot as plt
 l = [3,3,3,2,1,4,4,5,5,5,5,5,5,5,5,5]
 plt.hist(l,normed=True)
 plt.show()

输出以图片形式发布。我有两个问题:

a) 为什么只有 4 和 5 个 bin 以它的值为中心?其他人不应该也是这样吗?有什么技巧可以让它们居中吗?

b) 为什么 bin 没有按比例归一化?我希望所有 bin 的 y 值总和为 1。

请注意,我的真实示例在列表中包含更多值,但它们都是离散的。

【问题讨论】:

    标签: python numpy matplotlib


    【解决方案1】:

    您应该调整plt.hist 函数的关键字参数。其中有很多,documentation 可以帮助您回答其中的许多问题。

    一个。 ) 您可以传递关键字bins=range(1,7)align=left。将bins 关键字设置为序列会给出每个bin 的边界。例如,[1,2], [2,3], [3,4], ..., [5, 6]

    b. ) 检查您的垃圾箱宽度 (rwidth!=1)。来自matplotlib.pyplot.hist 文档:

    如果为 True,则返回元组的第一个元素将是计数 归一化以形成概率密度,即 n/(len(x)*dbin)。在一个 概率密度,直方图的积分应该是1;你 可以通过概率的梯形积分来验证 密度函数:

    这意味着您的 bin 下方的区域总和为 1,但由于 bin 宽度小于 1,因此高度会以高度不等于 1 的方式进行归一化。如果您调整 @ 987654329@,你得到一个好看的情节:

    plt.hist(l, bins=range(1,7), align='left', rwidth=1, normed=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-05
      • 2019-05-10
      • 1970-01-01
      • 1970-01-01
      • 2011-10-05
      • 2012-02-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多