sns.displot()
—— 分布可视化(Distribution Plot)
seaborn.displot()
(distribution plot)是用于 数据分布可视化 的函数,支持 直方图(histogram)、密度图(KDE)、ECDF图 等。
1. 语法
import seaborn as sns
sns.displot(data=None, x=None, kind="hist", bins=10, kde=False, hue=None, rug=False)
主要参数
参数 | 作用 |
---|---|
data | DataFrame 数据集 |
x | 需要可视化的数值变量 |
kind | 选择图表类型:"hist" (默认直方图)、"kde" (密度曲线)、"ecdf" (累计分布) |
bins | 直方图的分组数(默认 10 ) |
kde | 是否绘制密度曲线 |
hue | 按类别分类 |
rug | 是否添加散点(数据分布) |
2. 基本用法
2.1 直方图
import seaborn as sns
import matplotlib.pyplot as plt
# 载入数据
data = sns.load_dataset("penguins")
# 绘制直方图
sns.displot(data=data, x="flipper_length_mm", bins=20)
plt.title("Flipper Length Distribution")
plt.show()
📌 说明
x="flipper_length_mm"
选择需要可视化的数值变量。bins=20
指定 20 个区间。
2.2 直方图 + KDE 曲线
sns.displot(data=data, x="flipper_length_mm", bins=20, kde=True)
plt.show()
📌 作用
kde=True
添加核密度估计(KDE),用于平滑显示分布。
3. KDE 密度曲线
3.1 纯 KDE 图
sns.displot(data=data, x="flipper_length_mm", kind="kde")
plt.show()
📌 说明
kind="kde"
仅显示 核密度曲线(适用于 平滑连续数据)。
4. 分类数据可视化
4.1 按类别显示(hue
参数)
sns.displot(data=data, x="flipper_length_mm", hue="species", bins=20, kde=True)
plt.show()
📌 说明
hue="species"
按species
物种分类,不同类别不同颜色。
5. 其他分布类型
5.1 ecdf
(累积分布)
sns.displot(data=data, x="flipper_length_mm", kind="ecdf")
plt.show()
📌 说明
kind="ecdf"
显示 累计概率密度函数(ECDF)。
6. sns.displot()
vs sns.histplot()
sns.displot() | sns.histplot() | |
---|---|---|
返回对象 | FacetGrid (适用于子图) | AxesSubplot |
适用于 | 多个类别对比 | 单图分析 |
hue 分类 | ✅ 支持 | ✅ 支持 |
sns.histplot(data=data, x="flipper_length_mm", bins=20, kde=True)
plt.show()
📌 推荐
- 单个变量分析 →
histplot()
- 多类别、多个图 →
displot()
7. 总结
✅ sns.displot()
适用于 数据分布可视化,支持 直方图、KDE、ECDF。
✅ 常见参数
bins
控制分组数,kde=True
添加密度曲线。hue
分类数据,kind="kde"
仅绘制密度图。