python - matplotlib 直方图中“计数”和“观察次数”之间的差异
问题描述
matplotlib.pyplot.hist() 文档将参数“密度”(其不推荐使用的名称为“规范”)描述为:
密度:布尔,可选
如果为 True,则返回元组的第一个元素将是归一化以形成概率密度的计数,即直方图下的面积(或积分)总和为 1。这是通过将计数除以观察次数来实现的bin 宽度,而不是除以观察总数。
对于元组的第一个元素,它指的是 y 轴值。它说它设法通过以下方式使直方图下的面积为 1:将计数除以观察次数乘以 bin 宽度。
观察次数和观察次数有什么区别?在我看来,它们是同一件事:变量值落入某个 bin 的实例数(或计数数或观察数)。但是,这意味着每个 bin 的转换后的计数数只是 bin 宽度的 1(因为 # / #*bin_width = 1/bin_width),这没有任何意义。
有人可以为我澄清一下吗?感谢您的帮助,并对这个可能愚蠢的问题感到抱歉。
解决方案
我认为文档中的措辞有点混乱。计数是给定 bin 中的条目数(bin 的高度),观察数是进入直方图的事件总数。
该文档对它们如何规范化进行了区分,因为通常有两种方法可以进行规范化:
count / number of observations
- 在这种情况下,如果您将输出数组的所有条目相加,您将得到1
。count / (number of observations * bin width)
- 在这种情况下,输出数组的积分1
是真实的概率密度。这就是这样matplotlib
做的,他们只是想清楚这种区别。
推荐阅读
- javascript - Priority WebSDK getRows(1) 不返回数据
- sql - 在 SQL 查询中过滤掉由窗口函数 lag() 产生的空值
- java - 无法将角度前端与 javaBackend 连接起来?
- c# - 如何在 c# 中获取简单的相对文件路径以方便访问文件夹
- java - Apache Camel如何在解组时在未知属性上失败
- .net - DataAdapter.Fill 如何在“一次大命中”中跨数据移动?
- sapui5 - 如何拖放表格的行
- r - 无法在 R 中创建 webshot [TypeError: undefined is not an object]
- responsive-images - 手机srcset结果不一致
- powershell - 使用 powershell 脚本语法的建议