python - seaborn distplot中的y轴是什么?
问题描述
我有一些几何分布的数据。当我想看它时,我使用
sns.distplot(data, kde=False, norm_hist=True, bins=100)
结果是一张图片:
但是,箱高度加起来不等于 1,这意味着 y 轴不显示概率,这是不同的东西。如果相反,我们使用
weights = np.ones_like(np.array(data))/float(len(np.array(data)))
plt.hist(data, weights=weights, bins = 100)
y 轴应显示概率,因为箱高度总和为 1:
在这里可以看得更清楚:假设我们有一个列表
l = [1, 3, 2, 1, 3]
我们有两个 1、两个 3 和一个 2,所以它们各自的概率是 2/5、2/5 和 1/5。当我们使用带有 3 个 bin 的 seaborn histplot 时:
sns.distplot(l, kde=False, norm_hist=True, bins=3)
我们得到:
如您所见,第 1 个和第 3 个 bin 总和为 0.6+0.6=1.2,这已经大于 1,因此 y 轴不是概率。当我们使用
weights = np.ones_like(np.array(l))/float(len(np.array(l)))
plt.hist(l, weights=weights, bins = 3)
我们得到:
y轴是概率,如预期的0.4+0.4+0.2=1。
这两种情况下的 bin 数量对于每种情况下使用的两种方法都是相同的:100 个 bin 用于几何分布的数据,3 个 bin 用于具有 3 个可能值的小数组 l。所以垃圾箱数量不是问题。
我的问题是:在以 norm_hist=True 调用的 seaborn distplot 中,y 轴的含义是什么?
解决方案
从文档中:
norm_hist : bool,可选
如果为 True,则直方图高度显示密度而不是计数。如果绘制了 KDE 或拟合密度,则暗示这一点。
因此,您还需要考虑您的 bin 宽度,即计算曲线下的面积,而不仅仅是 bin 高度的总和。
推荐阅读
- google-analytics - Google Analytics 4 (GA4) 有会话统一吗?
- tensorflow - 自编码器的混淆矩阵显示的故障发生次数(FN+TP)多于整个数据集中的实际故障发生次数
- python - 如何从 SageMaker 笔记本调用 RDS 数据库并将答案转换为数据框?
- ios - Xcode LaunchScreen 图像位置变化
- arrays - 数组中的项目的“对象可能未定义”
- .net - Solr 对包含多个单词的短语进行拼写检查
- python - 如何去除opencv中NibackThreshold后的黑点
- c - 读取进程内存时如何找出先前分配的if页面
- openssl - 从 CMS 消息中提取证书链信息
- angular - 考虑到日期灯节省,如何以角度获取当前 EST 时间