sns.catplot() —— 分类数据可视化(Categorical Plot)
seaborn.catplot() 是 分类数据可视化的通用函数,支持多种 分类图表(stripplot、swarmplot、boxplot、violinplot、barplot、pointplot),适用于 类别数据分析(EDA)。
1. 语法
import seaborn as sns
sns.catplot(data=None, x=None, y=None, hue=None, kind="strip", col=None, row=None)
主要参数
| 参数 | 作用 |
|---|---|
data | DataFrame 数据集 |
x | 分类变量 |
y | 数值变量 |
hue | 按类别分色 |
kind | 图表类型(strip、swarm、box、violin、bar、point) |
col / row | 生成多个子图 |
2. kind 参数(支持的图表类型)
kind | 作用 |
|---|---|
"strip" | 散点分类(默认) |
"swarm" | 防止散点重叠(蜜蜂图) |
"box" | 箱线图(分布分析) |
"violin" | 小提琴图(密度估计) |
"bar" | 条形图(类别均值 + 置信区间) |
"point" | 点图(类别均值折线图) |
3. 基本示例
3.1 kind="strip"(默认散点分类图)
import seaborn as sns
import matplotlib.pyplot as plt
# 加载数据
data = sns.load_dataset("titanic")
# 绘制散点分类图
sns.catplot(data=data, x="class", y="age", kind="strip")
plt.show()
📌 说明
x="class"→ 类别变量(头等舱/二等舱/三等舱)。y="age"→ 年龄分布(点表示个体)。

3.2 kind="swarm"(蜜蜂图,防止点重叠)
sns.catplot(data=data, x="class", y="age", kind="swarm")
plt.show()
📌 作用
kind="swarm"调整点位置,避免重叠(适用于小数据集)。

3.3 kind="box"(箱线图,显示中位数 & 异常值)
sns.catplot(data=data, x="class", y="age", kind="box")
plt.show()
📌 作用
kind="box"显示数据分布、中位数、异常值。

3.4 kind="violin"(小提琴图,显示密度)
sns.catplot(data=data, x="class", y="age", kind="violin")
plt.show()
📌 作用
kind="violin"结合箱线图和密度分布,适用于观察数据形态。

3.5 kind="bar"(条形图,计算均值)
sns.catplot(data=data, x="class", y="fare", kind="bar")
plt.show()
📌 作用
kind="bar"计算类别数据的均值,适用于分析不同类别均值对比。

3.6 kind="point"(点图,趋势分析)
sns.catplot(data=data, x="class", y="fare", kind="point")
plt.show()
📌 作用
kind="point"显示均值及趋势(适用于观察类别随变量变化的趋势)。

4. 多子图(col 和 row 参数)
4.1 按列(col)拆分
sns.catplot(data=data, x="class", y="age", kind="box", col="sex")
plt.show()
📌 作用
col="sex"→ 按性别拆分子图。

4.2 按行(row)拆分
sns.catplot(data=data, x="class", y="age", kind="violin", row="sex")
plt.show()
📌 作用
row="sex"→ 按性别拆分子图(纵向排列)。

5. sns.catplot() vs 其他分类图
sns.catplot() | sns.boxplot() / sns.violinplot() / sns.barplot() | |
|---|---|---|
| 默认类型 | kind="strip" | 固定图表类型 |
支持 col/row 多子图 | ✅ | ❌ |
| 适用于 | 分类数据可视化 | 单个类别分析 |
6. 总结
✅ sns.catplot() 适用于分类数据的可视化,支持 多种图表类型。
✅ 常见参数
kind="box"(箱线图),kind="violin"(密度分析)。hue按类别分色,col/row生成多个子图。
Seaborn分类数据可视化详解
755

被折叠的 条评论
为什么被折叠?



