sns.stripplot()
—— 分类数据的散点分布(Strip Plot)
seaborn.stripplot()
用于显示分类数据的散点分布,适用于 数据离散度、分布模式、类别间对比。
1. 语法
import seaborn as sns
sns.stripplot(data=None, x=None, y=None, hue=None, jitter=True, dodge=False, size=5, alpha=None)
主要参数
参数 | 作用 |
---|---|
data | 数据集(pandas.DataFrame ) |
x | 分类变量(类别列) |
y | 数值变量(连续值) |
hue | 按类别分色 |
jitter | 是否增加抖动(防止点重叠,默认 True ) |
dodge | 当 hue 存在时,是否分开显示(默认 False ) |
size | 点的大小(默认 5 ) |
alpha | 透明度(0-1 ,用于减少重叠影响) |
2. 基本示例
2.1 画分类散点图
import seaborn as sns
import matplotlib.pyplot as plt
# 加载数据
data = sns.load_dataset("titanic")
# 绘制分类散点图
sns.stripplot(data=data, x="class", y="age")
plt.title("Age Distribution by Class")
plt.show()
📌 作用
x="class"
→ 类别(头等舱/二等舱/三等舱)。y="age"
→ 数值变量(年龄)。
2.2 增加抖动(jitter=True
)
sns.stripplot(data=data, x="class", y="age", jitter=True)
plt.show()
📌 作用
jitter=True
避免数据点重叠,提高可读性。
2.3 按类别着色(hue
参数)
sns.stripplot(data=data, x="class", y="age", hue="sex")
plt.show()
📌 作用
hue="sex"
→ 不同性别用不同颜色表示。
2.4 增加透明度(alpha
参数)
sns.stripplot(data=data, x="class", y="age", hue="sex", alpha=0.5)
plt.show()
📌 作用
alpha=0.5
减少数据点重叠的影响。
3. 进阶用法
3.1 调整点大小(size
参数)
sns.stripplot(data=data, x="class", y="age", size=8)
plt.show()
📌 作用
size=8
增大数据点,适用于小数据集。
3.2 结合 dodge=True
(分开不同 hue
类别)
sns.stripplot(data=data, x="class", y="age", hue="sex", dodge=True)
plt.show()
📌 作用
dodge=True
让不同hue
类别的点分开。
3.3 横向展示(orient="h"
)
sns.stripplot(data=data, x="age", y="class", orient="h")
plt.show()
📌 作用
orient="h"
横向展示数据。
4. sns.stripplot()
vs sns.swarmplot()
sns.stripplot() | sns.swarmplot() | |
---|---|---|
作用 | 分类散点图 | 避免重叠的分类散点图 |
适用场景 | 大数据集(允许重叠) | 小数据集(防止重叠) |
sns.swarmplot(data=data, x="class", y="age", hue="sex")
plt.show()
📌 推荐
- 大数据集 →
sns.stripplot()
- 避免重叠 →
sns.swarmplot()
5. 总结
✅ sns.stripplot()
适用于分类数据的散点分布分析,支持 抖动、透明度、分组显示。
✅ 常见参数
hue
分类着色,jitter=True
增加抖动,alpha=0.5
减少重叠。dodge=True
分开不同类别,size=8
调整点大小。