【Seaborn】sns.jointplot() 函数:联合分布图(Joint Distribution Plot)、同时显示 散点图、直方图、核密度估计(KDE)

sns.jointplot() —— 联合分布图(Joint Distribution Plot)

seaborn.jointplot() 用于 可视化两个数值变量的联合分布,同时显示 散点图、直方图、核密度估计(KDE)等,适用于 变量关系探索(EDA)


1. 语法

import seaborn as sns

sns.jointplot(data=None, x=None, y=None, kind="scatter", hue=None, marginal_kws=None)

主要参数

参数作用
dataDataFrame 数据集
xX 轴变量(数值)
yY 轴变量(数值)
kind绘图类型"scatter""hist""kde""hex""reg"
hue按类别分色
marginal_kws额外控制边缘图(如 bins

2. kind 参数(支持的图表类型)

kind作用
"scatter"散点图(默认)
"hist"直方图(2D 直方图)
"kde"核密度估计(KDE)
"hex"六边形分布(适用于大数据)
"reg"回归散点图(带回归线)

3. 基本示例

3.1 kind="scatter"(默认:散点图 + 直方图)

import seaborn as sns
import matplotlib.pyplot as plt

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

# 画联合分布图
sns.jointplot(data=data, x="flipper_length_mm", y="body_mass_g")

plt.show()

📌 说明

  • 中心:散点图
  • 上方/右侧:直方图
  • 用于观察变量关系和分布
    在这里插入图片描述

3.2 kind="hist"(2D 直方图 + 边缘直方图)

sns.jointplot(data=data, x="flipper_length_mm", y="body_mass_g", kind="hist")

plt.show()

📌 作用

  • 中间区域显示 2D 直方图(颜色深度表示密度)。
  • 适用于 大数据可视化
    在这里插入图片描述

3.3 kind="kde"(核密度估计)

sns.jointplot(data=data, x="flipper_length_mm", y="body_mass_g", kind="kde")

plt.show()

📌 作用

  • 中间:二维 KDE(等高线密度图)
  • 边缘:KDE 曲线(替代直方图)。
    在这里插入图片描述

3.4 kind="hex"(六边形分布)

sns.jointplot(data=data, x="flipper_length_mm", y="body_mass_g", kind="hex")

plt.show()

📌 作用

  • kind="hex" 适用于大数据,避免散点图点重叠问题。
    在这里插入图片描述

3.5 kind="reg"(回归散点图 + 直方图)

sns.jointplot(data=data, x="flipper_length_mm", y="body_mass_g", kind="reg")

plt.show()

📌 作用

  • kind="reg" 在散点图上加回归线,适用于 变量趋势分析
    在这里插入图片描述

4. 进阶用法

4.1 按类别分类(hue 参数)

sns.jointplot(data=data, x="flipper_length_mm", y="body_mass_g", hue="species")

plt.show()

📌 作用

  • hue="species"不同物种用不同颜色
    在这里插入图片描述

4.2 调整边缘图参数(marginal_kws

sns.jointplot(data=data, x="flipper_length_mm", y="body_mass_g", kind="hist", marginal_kws={"bins": 20})

plt.show()

📌 作用

  • marginal_kws={"bins": 20}控制边缘直方图的 bins
    在这里插入图片描述

5. sns.jointplot() vs sns.pairplot()

sns.jointplot()sns.pairplot()
显示关系2 个变量多个变量
支持 hue 分类
适用于单个变量对分析多变量探索
sns.pairplot(data=data, hue="species")
plt.show()

📌 推荐

  • 2 变量关系jointplot()
  • 多个变量分析pairplot()
    在这里插入图片描述

6. 总结

sns.jointplot() 适用于两个数值变量的联合分布可视化
常见参数

  • kind="scatter"(默认),kind="hist"(2D 直方图),kind="kde"(密度估计)。
  • hue 按类别分类,marginal_kws 控制边缘图参数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

彬彬侠

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

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

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

打赏作者

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

抵扣说明:

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

余额充值