sns.relplot()
—— 关系图(Relational Plot)
seaborn.relplot()
是 绘制数值变量之间关系的通用函数,它可以绘制 散点图(scatterplot
) 或 折线图(lineplot
),适用于 数据探索(EDA)。
1. 语法
import seaborn as sns
sns.relplot(data=None, x=None, y=None, hue=None, size=None, style=None, kind="scatter", col=None, row=None)
主要参数
参数 | 作用 |
---|---|
data | DataFrame 数据集 |
x | X 轴数值变量 |
y | Y 轴数值变量 |
hue | 按类别分色 |
size | 按类别调整点的大小 |
style | 按类别改变点的形状 |
kind | 选择 "scatter" (散点图,默认) 或 "line" (折线图) |
col / row | 按类别生成多个子图 |
2. 基本示例
2.1 画散点图(默认 kind="scatter"
)
import seaborn as sns
import matplotlib.pyplot as plt
# 加载数据
data = sns.load_dataset("penguins")
# 绘制散点图
sns.relplot(data=data, x="flipper_length_mm", y="body_mass_g")
plt.show()
📌 说明
- 默认绘制散点图,相当于
sns.scatterplot()
。 relplot()
适用于多子图绘制(见下方)。
2.2 按类别着色(hue
参数)
sns.relplot(data=data, x="flipper_length_mm", y="body_mass_g", hue="species")
plt.show()
📌 作用
hue="species"
→ 不同种类企鹅用不同颜色表示。
2.3 按类别改变点大小(size
参数)
sns.relplot(data=data, x="flipper_length_mm", y="body_mass_g", hue="species", size="bill_length_mm")
plt.show()
📌 作用
size="bill_length_mm"
→ 喙长越大,点越大。
2.4 按类别改变点形状(style
参数)
sns.relplot(data=data, x="flipper_length_mm", y="body_mass_g", hue="species", style="sex")
plt.show()
📌 作用
style="sex"
→ 不同性别企鹅用不同形状表示。
3. 多子图(col
和 row
)
3.1 按列 (col
) 拆分
sns.relplot(data=data, x="flipper_length_mm", y="body_mass_g", col="species")
plt.show()
📌 作用
col="species"
→ 每个物种单独绘制散点图。
3.2 按行 (row
) 拆分
sns.relplot(data=data, x="flipper_length_mm", y="body_mass_g", row="species")
plt.show()
📌 作用
row="species"
→ 每个物种单独绘制散点图(纵向排列)。
4. 绘制折线图
4.1 kind="line"
(折线图)
data = sns.load_dataset("fmri") # fMRI 数据集
sns.relplot(data=data, x="timepoint", y="signal", kind="line")
plt.show()
📌 作用
kind="line"
→ 绘制折线图(等价于sns.lineplot()
)。
4.2 按类别绘制折线图
sns.relplot(data=data, x="timepoint", y="signal", hue="event", kind="line")
plt.show()
📌 作用
hue="event"
→ 不同事件(event
)用不同颜色表示。
5. sns.relplot()
vs sns.scatterplot()
sns.relplot() | sns.scatterplot() | |
---|---|---|
默认类型 | 散点图 | 散点图 |
支持 col /row 多子图 | ✅ | ❌ |
支持 kind="line" | ✅ | ❌ |
6. 总结
✅ sns.relplot()
适用于探索数值变量之间的关系,支持 散点图 & 折线图。
✅ 常见参数
hue
按类别分色,size
按数值调整大小,style
按类别调整形状。col
/row
生成 多个子图,适用于 数据分类可视化。