【Seaborn】sns.kdeplot() 函数: 核密度估计(KDE)图

sns.kdeplot() —— 核密度估计(KDE)图

seaborn.kdeplot() 用于 可视化数据的概率密度分布,通过 核密度估计(KDE, Kernel Density Estimation) 生成平滑曲线,适用于 数据分布分析


1. 语法

import seaborn as sns

sns.kdeplot(data=None, x=None, y=None, hue=None, fill=False, bw_adjust=1, levels=10, cmap=None, shade=None)

主要参数

参数作用
dataDataFrame 数据集
x需要绘制 KDE 的数值变量
y绘制 2D KDE(二维密度图)
hue按类别分色
fill是否填充密度曲线
bw_adjust调整平滑度(>1 更平滑,<1 更尖锐)
levels2D KDE 轮廓线数量
cmap颜色映射
shade旧版本 fill 参数

2. 单变量 KDE(1D)

2.1 绘制 KDE 曲线

import seaborn as sns
import matplotlib.pyplot as plt

# 加载数据
data = sns.load_dataset("penguins")

# 绘制 KDE 图
sns.kdeplot(data=data, x="flipper_length_mm")

plt.title("Flipper Length KDE")
plt.show()

📌 作用

  • 平滑展示 flipper_length_mm 的分布
    在这里插入图片描述

2.2 填充 KDE 曲线(fill=True

sns.kdeplot(data=data, x="flipper_length_mm", fill=True)

plt.show()

📌 作用

  • fill=True 填充密度曲线,更直观。
    在这里插入图片描述

2.3 按类别绘制 KDE(hue 参数)

sns.kdeplot(data=data, x="flipper_length_mm", hue="species", fill=True)

plt.show()

📌 作用

  • hue="species"不同物种绘制不同的 KDE 曲线
    在这里插入图片描述

2.4 调整 KDE 平滑度(bw_adjust 参数)

sns.kdeplot(data=data, x="flipper_length_mm", fill=True, bw_adjust=0.5)  # 变窄
sns.kdeplot(data=data, x="flipper_length_mm", fill=True, bw_adjust=2)    # 变宽

plt.show()

📌 作用

  • bw_adjust=0.5分布更尖锐
  • bw_adjust=2分布更平滑

在这里插入图片描述

3. 二维 KDE(2D)

3.1 绘制 2D KDE

sns.kdeplot(data=data, x="flipper_length_mm", y="body_mass_g")

plt.show()

📌 作用

  • 查看 flipper_length_mmbody_mass_g 的联合分布
    在这里插入图片描述

3.2 颜色填充(fill=True

sns.kdeplot(data=data, x="flipper_length_mm", y="body_mass_g", fill=True, cmap="Blues")

plt.show()

📌 作用

  • fill=True 填充颜色cmap="Blues" 选择颜色方案。
    在这里插入图片描述

3.3 轮廓线数量(levels 参数)

sns.kdeplot(data=data, x="flipper_length_mm", y="body_mass_g", levels=20)

plt.show()

📌 作用

  • levels=20 增加等高线密度
    在这里插入图片描述

4. sns.kdeplot() vs sns.histplot()

sns.kdeplot()sns.histplot()
作用估计概率密度分布直方图(离散分布)
适用场景平滑数据分布观察数据频率
是否适用于分类数据❌ 否✅ 可以
sns.histplot(data=data, x="flipper_length_mm", kde=True)
plt.show()

📌 推荐

  • 观察数据分布形态kdeplot()
  • 数据频率分析histplot()
    在这里插入图片描述

5. 总结

sns.kdeplot() 适用于查看数据分布的平滑曲线,支持 1D 和 2D KDE
常见参数

  • fill=True 填充密度曲线bw_adjust 控制平滑度
  • hue 按类别分类levels 调整 2D 轮廓线数量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

彬彬侠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值