Python 数据可视化:Seaborn 库使用指南
Seaborn 是基于 Matplotlib 的高级绘图库,提供简洁 API 生成统计图表。本文介绍安装方法、核心 API 形式及散点图、箱线图、小提琴图等七种常用图表的绘制代码与参数详解。内容涵盖数据准备、样式设置、图表定制及结果保存,帮助开发者快速掌握 Python 数据可视化技能。

Seaborn 是基于 Matplotlib 的高级绘图库,提供简洁 API 生成统计图表。本文介绍安装方法、核心 API 形式及散点图、箱线图、小提琴图等七种常用图表的绘制代码与参数详解。内容涵盖数据准备、样式设置、图表定制及结果保存,帮助开发者快速掌握 Python 数据可视化技能。

Seaborn 是基于 Matplotlib 的 Python 数据可视化库。它在 Matplotlib 的基础上进行了更高级的 API 封装,使得用户可以更加简便地创建具有吸引力的统计图表。Seaborn 高度兼容 NumPy 和 Pandas 数据结构,并支持 SciPy 与 Statsmodels 等统计模式,是数据分析中不可或缺的工具。
使用 pip 安装 Seaborn:
pip install seaborn
或者使用 conda:
conda install seaborn
在代码中导入必要的库并设置显示环境:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
# 设置主题样式
sns.set_theme(style="whitegrid")
# 设置中文字体以防乱码
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
Seaborn 的绘图函数主要针对 Pandas 的 DataFrame 或 NumPy 数组,常见调用形式如下:
sns.图名 (x='X 轴列名', y='Y 轴列名', data=df)sns.图名 (x='X 轴列名', y='Y 轴列名', hue='分组参数', data=df)sns.图名 (x=np.array, y=np.array)散点图用于表现两个变量之间的关系。每个点代表数据集中的一个观察值。使用 relplot() 生成。
# 示例:员工人均薪酬 vs 高管平均薪酬
g = sns.relplot(
x='员工人均薪酬',
y='高管平均薪酬',
hue='申万一级行业',
data=df,
kind='scatter'
)
参数说明:
x, y: 坐标轴数据列名。hue: 通过颜色区分不同类别(如行业)。data: 数据源 DataFrame。箱线图展示数据的分布情况,包括上边缘、下边缘、中位数和四分位数,便于观察离群点。使用 catplot(kind='box') 生成。
sns.catplot(
x='申万一级行业',
y='员工人均薪酬',
kind='box',
data=df
)
参数说明:
kind: 指定图表类型,此处为 'box'。orient: 控制方向,'h' 为横向,'v' 为纵向。结合箱形图和密度图特征,显示数据分布形状。中间的粗条表示四分位数范围,白点为中位数。
sns.catplot(
x='申万一级行业',
y='员工人均薪酬',
kind='violin',
data=df,
split=True,
hue='上市年份'
)
参数说明:
split: 若为 True,可将同一类别的数据按另一维度拆分到两侧。hue: 进一步细分颜色。展现单个变量的分布及双变量之间的关系。使用 jointplot()。
sns.jointplot(
x='员工人均薪酬',
y='高管人均薪酬',
data=df,
kind='hex' # 也可选 'scatter', 'kde'
)
参数说明:
kind: 外围单变量分布表现形式,如直方图 ('hist') 或核密度估计 ('kde')。展现多变量之间的相关系数矩阵。使用 heatmap()。
corr = df.corr()
sns.heatmap(
corr,
annot=True,
cmap='coolwarm',
vmin=-1,
vmax=1,
square=True
)
参数说明:
annot: 是否显示数值。cmap: 颜色映射方案。square: 单元格是否为正方形。展现多个变量两两之间的散点图及自身分布规律。使用 pairplot()。
sns.pairplot(
df,
diag_kind='kde',
markers=['o', 's', 'D'],
plot_kws={'alpha': 0.6}
)
参数说明:
diag_kind: 对角线分布类型,如直方图 ('hist') 或密度图 ('kde')。markers: 散点形状。反映变量自身的分布规律。使用 kdeplot()。
sns.kdeplot(
data=df,
x='员工人均薪酬',
shade=True,
alpha=0.5,
color='blue'
)
参数说明:
shade: 是否填充阴影。alpha: 透明度。Seaborn 允许用户自定义全局样式,以便保持报告的一致性。
# 设置调色板
sns.set_palette("husl")
# 保存图像
plt.savefig('output.png', dpi=300, bbox_inches='tight')
此外,可以通过 color_palette 获取特定颜色的列表,用于手动指定颜色。对于复杂的布局,可以使用 FacetGrid 进行分面绘图,将数据按多个维度切分展示。
Seaborn 提供了丰富的统计图表接口,能够极大地简化数据可视化的流程。通过合理组合上述图表,可以深入分析数据特征、发现异常值及变量间的相关性。在实际项目中,建议结合业务背景选择合适的图表类型,并利用 set_theme 统一视觉风格,确保报告的专业性与可读性。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online