【发布时间】:2020-05-19 00:22:55
【问题描述】:
有时,当我使用 seaborn 的 displot 函数,norm_hist = True 创建直方图时,y 轴小于 1,这与 PDF 的预期相同。其他时候它的值大于一。
例如,如果我运行
sns.set();
x = np.random.randn(10000)
ax = sns.distplot(x)
然后直方图上的 y 轴按预期从 0.0 变为 0.4,但如果数据不正常,即使 norm_hist = True,y 轴也可以大到 30。
关于直方图函数的规范化参数,我缺少什么,例如sns.distplot 的 norm_hist?即使我自己通过创建一个新变量来规范化数据:
new_var = data/sum(data)
为了使数据总和为 1,无论 norm_hist 参数是否为真,y 轴仍将显示远大于 1 的值(例如 30)。
当 y 轴有这么大的范围时,我能给出什么解释?
我认为正在发生的事情是我的数据非常集中在零附近,因此为了使数据的面积等于 1(例如在 kde 下),直方图的高度必须大于 1...但由于概率不能高于 1,结果是什么意思?
另外,我怎样才能让这些函数在 y 轴上显示概率?
【问题讨论】:
标签: python matplotlib seaborn