Seaborn 入门指南:让统计数据可视化更优雅
做数据分析时,Matplotlib 能画图,但默认样式偏“朴素”,画统计图表还得手写大量样式代码。Seaborn 正是建立在 Matplotlib 之上的统计可视化库,用更少的代码画出更美观、信息更丰富的图。本文带你从安装到实战,快速上手 Seaborn。
一、环境准备
Seaborn 依赖 NumPy、Pandas 和 Matplotlib,建议用虚拟环境安装:
pip install seaborn
# 验证
python -c "import seaborn as sns; print(sns.__version__)"
要求 Python 3.8+。若只需画图不显示,建议在脚本开头加
import matplotlib; matplotlib.use("Agg")。
二、最小可运行示例
先画一张最基础的柱状图,感受 Seaborn 的简洁:
import seaborn as sns
import matplotlib.pyplot as plt
# 内置示例数据集
tips = sns.load_dataset("tips")
# 按星期统计总消费
sns.barplot(data=tips, x="day", y="total_bill", estimator=sum)
plt.title("各星期总消费")
plt.show()
几行代码就得到带配色、坐标网格的统计柱图,比纯 Matplotlib 省心很多。
三、核心概念
Seaborn 有三个最常用的“图级函数”(figure-level),它们会返回 FacetGrid,方便后续分面:
sns.relplot:关系图(散点 / 折线),看变量间关系。sns.displot:分布图(直方图 / 核密度),看数据分布。sns.catplot:分类图(柱图 / 箱线 / 小提琴),看分类维度对比。
统一传入 data= + x=/y=,并可用 hue= 按某列上色、col= 分面成多子图。
四、进阶用法
用 hue 上色、col 分面,一张图看清多个维度:
sns.relplot(
data=tips,
x="total_bill", y="tip",
hue="smoker", # 按是否吸烟上色
col="time", # 按午/晚分两列
kind="scatter"
)
plt.show()
样式主题一键切换:sns.set_theme(style="whitegrid", palette="muted"),常用 style 有 darkgrid/whitegrid/ticks。
五、实战场景:分析小费分布
用箱线图 + 小提琴图对比不同用餐时间的小费分布:
import seaborn as sns
import matplotlib.pyplot as plt
tips = sns.load_dataset("tips")
fig, ax = plt.subplots(1, 2, figsize=(12, 5))
sns.boxplot(data=tips, x="day", y="tip", ax=ax[0])
sns.violinplot(data=tips, x="day", y="tip", ax=ax[1])
ax[0].set_title("箱线图"); ax[1].set_title("小提琴图")
plt.tight_layout(); plt.show()
小提琴图能同时看出分布密度与四分位,比纯箱线图信息量更大,适合写进分析报告。
六、常见坑 / 报错
1. ModuleNotFoundError: No module named 'scipy'
部分统计函数(如 sns.kdeplot)依赖 scipy。解决:pip install scipy。
2. FutureWarning: use_inf / estimator 参数变更
新版本 Seaborn 默认 estimator="mean",老教程写 estimator=sum 会警告。明确传入目标聚合函数即可,或用 sns.barplot(..., errorbar="sd") 替代旧 ci= 参数。
3. 中文乱码
Matplotlib 默认不含中文字体。解决:
plt.rcParams["font.sans-serif"] = ["SimHei"] # Windows
plt.rcParams["axes.unicode_minus"] = False
七、总结与下一步
Seaborn 用“图级函数 + hue/col”的范式,把统计可视化的代码量降到最低。建议下一步:
- 用
sns.pairplot做多变量两两关系探索; - 结合
sns.heatmap画相关系数矩阵; - 学习
sns.lmplot做回归拟合可视化。
掌握这些,你的数据分析报告将又快又好看。

浙公网安备 33010602011771号