Seaborn是基于Matplotlib的高级统计可视化库,语法简洁、默认美观,适用于EDA;支持分布图(histplot/kdeplot)、关系图(scatterplot/lineplot/regplot)、分类图(barplot/violinplot/boxplot)及相关性热力图,自动处理缺失值、集成Pandas、语义化绘图。

Seaborn 是基于 Matplotlib 的高级数据可视化库,专为统计图表设计,语法简洁、默认样式美观,特别适合探索性数据分析(EDA)。掌握几种常用图形,就能快速呈现数据分布、关系与分类特征。
分布图:看单变量或双变量的数值分布
分布图用于观察数据取值范围、集中趋势和离散程度。最常用的是直方图(histplot)和核密度估计图(kdeplot),也可用 displot(新版中已整合为 histplot 或 kdeplot 的封装)统一调用。
- 单变量分布:用
sns.histplot(df['age'], kde=True)可同时显示直方图与平滑密度曲线 - 分组分布:添加
hue='gender'参数,自动按类别叠绘并区分颜色 - 双变量密度:用
sns.kdeplot(data=df, x='income', y='spending', hue='region')展示二维密度热区与分组边界
关系图:分析两个数值变量之间的关联
散点图(scatterplot)和线图(lineplot)是表达变量间关系的基础形式,Seaborn 支持自动聚合与语义映射。
- 基础散点图:
sns.scatterplot(data=df, x='height', y='weight', hue='team', size='age')—— 一个图里同时编码三个维度 - 带趋势线:
sns.regplot(x='carat', y='price', data=diamonds)自动拟合回归线并显示置信区间 - 时间序列趋势:
sns.lineplot(data=ts_data, x='date', y='sales', hue='store'),支持多线对比与误差带
分类图:比较不同类别的统计量
当横轴是类别型变量(如城市、产品类型、实验组别),适合用条形图、箱线图、小提琴图等呈现中心值与变异性。
立即学习“Python免费学习笔记(深入)”;
- 均值对比:
sns.barplot(data=df, x='category', y='score', errorbar='sd')默认显示标准差误差线 - 分布细节:
sns.violinplot(data=df, x='class', y='sepal_length', inner='quart')展示密度形状+四分位结构 - 异常值识别:
sns.boxplot(data=df, x='group', y='response')清晰标出中位数、四分位距和离群点
相关性热力图:快速诊断多变量线性关系
用 heatmap 可视化相关系数矩阵,是 EDA 中检查多重共线性或变量筛选的第一步。
- 先计算相关矩阵:
corr = df.select_dtypes('number').corr(method='pearson') - 再绘图:
sns.heatmap(corr, annot=True, cmap='coolwarm', center=0, fmt='.2f') - 可加掩码隐藏上三角:
mask = np.triu(np.ones_like(corr, dtype=bool)),让画面更聚焦
Seaborn 图形的共同优势在于:自动处理缺失值、内置配色方案、支持长格式数据、与 Pandas 深度集成。多数函数只需指定 data、x、y、hue 等语义参数,不必手动设置坐标轴或图例——把注意力留给数据本身,而不是绘图细节。










