为什么 seaborn.dist 和 pyplot.hist 在同一数据上生成两个不同的直方图?

数据挖掘 Python 数据 可视化 分配 海运
2021-10-03 12:56:32

我正在查看电信客户数据。我目前正在研究的两个变量是:

  • 每月费用- 每月向客户收取的总金额。
  • 是老年人- 客户是否是老年人。

我正在尝试绘制两个直方图,以查看非老年人和老年人的分布是否不同。

如果我使用 seaborn 的 distplot 那么我得到以下结果在此处输入图像描述

如果我使用 pyplot hist 那么我得到以下结果

在此处输入图像描述

在第一张图中,蓝色的高于橙色的,范围为 ~70-120,而在第二张图中,蓝色的始终保持在橙色的下方。

这两者有什么区别?

2个回答

第一个返回分布的概率密度。如您所见,它们积分为 1,即它们覆盖相同的区域(因为它们是概率,而不是原始数据)。

第二个返回实际频率,这就是为什么您拥有数据的实际规模。具有不同尺度的不同直方图。

这些绘图函数pyplot.histseaborn.countplotseaborn.displot都是绘制单个变量频率的辅助工具。根据这个变量的性质,它们可能或多或少适合可视化。

所有函数pyplot.histseaborn.countplotseaborn.displot充当 matplotlib 条形图的包装器,如果认为手动绘制此类条形图过于繁琐,则可以使用这些函数。

对于连续变量,可以使用apyplot.hist或。seaborn.distplot对于离散变量,aseaborn.countplot更方便。