小编MHa*_*all的帖子

标准化直方图 y 轴大于 1

有时,当我使用seaborn的displot函数创建直方图时,norm_hist = True,y轴小于PDF的预期值1。其他时候它的值大于一。

例如,如果我跑

sns.set(); 
x = np.random.randn(10000)
ax = sns.distplot(x)
Run Code Online (Sandbox Code Playgroud)

然后,直方图上的 y 轴将按预期从 0.0 变为 0.4,但如果数据不正常,即使norm_hist = True,y 轴也可能会大到 30。

关于直方图函数的标准化参数,我缺少什么,例如 sns.distplot 的norm_hist?即使我自己通过创建一个新变量来标准化数据:

new_var = data/sum(data)
Run Code Online (Sandbox Code Playgroud)

这样数据总和为 1,无论norm_hist 参数是否为 True,y 轴仍将显示远大于 1 的值(例如 30)。

当 y 轴有这么大的范围时我可以给出什么解释?

我认为发生的情况是我的数据紧密集中在零附近,因此为了使数据的面积等于 1(例如在 kde 下),直方图的高度必须大于 1...但是由于概率不能大于 1 结果是什么意思?

另外,如何让这些函数在 y 轴上显示概率?

python matplotlib histogram density-plot seaborn

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

density-plot ×1

histogram ×1

matplotlib ×1

python ×1

seaborn ×1