当使用distplot绘制直方图时,y轴的单位是什么?

14

使用distplot绘制直方图时,y轴的单位是什么?我已经将不同的直方图与正态拟合一起绘制出来,发现在某些情况下其范围为0到0.9,而在另一些情况下其范围为0到4.5。

1个回答

18

来自 help(sns.distplot)

norm_hist: bool, 可选 如果为True,则直方图的高度显示密度而不是计数。 如果绘制了KDE或拟合的密度,则会暗示此选项。

一种密度函数的缩放使得曲线下的面积为1,因此没有任何一个单独的条形箱会比1(整个数据集)更高。但是,默认情况下kdeTrue并覆盖了norm_hist,因此只有在显式设置kdeFalse时,norm_hist才会改变y轴的值:

import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns

fig, axs = plt.subplots(figsize=(6,6), ncols=2, nrows=2)
data = np.random.randint(0,20,40)

for row in (0,1):
    for col in (0,1):
        sns.distplot(data, kde=row, norm_hist=col, ax=axs[row, col])

axs[0,0].set_ylabel('NO kernel density')
axs[1,0].set_ylabel('KDE on')
axs[1,0].set_xlabel('norm_hist=False')
axs[1,1].set_xlabel('norm_hist=True')

在此输入图片描述


7
这很有帮助,但我认为明确表达一个密度的概念是其被缩放以使曲线下面积为1。 - mwaskom
没问题,Harry。如果它回答了你的问题,请将其标记为已完成。 - cphlewis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接