Seaborn是Python中专注于统计可视化的第三方库,它内置了多种美观的默认样式,支持直接对接pandas的DataFrame数据结构,不需要过多繁琐的配置就能生成高质量的统计图表,大幅降低了数据可视化的代码编写成本。

Seaborn基础准备
安装与导入
如果还没有安装Seaborn,可以通过pip命令快速完成安装,安装完成后在代码中导入相关库即可使用。
# 安装Seaborn # pip install seaborn # 导入所需库 import seaborn as sns import matplotlib.pyplot as plt import pandas as pd import numpy as np
数据集准备
Seaborn内置了多个常用的示例数据集,也可以直接使用pandas读取本地或者在线数据,这里以内置的tips数据集为例,该数据集包含餐厅消费的相关记录,适合演示各类统计图表。
# 加载内置tips数据集
tips = sns.load_dataset("tips")
# 查看数据集前5行
print(tips.head())
常用图表绘制技巧
散点图:展示变量关系
散点图适合展示两个连续变量之间的相关关系,Seaborn的scatterplot函数可以快速绘制,还支持通过参数区分不同类别的数据点。
# 绘制消费金额与小费金额的散点图,按是否吸烟分组
sns.scatterplot(data=tips, x="total_bill", y="tip", hue="smoker")
# 添加图表标题
plt.title("消费金额与小费金额关系散点图")
# 显示图表
plt.show()
柱状图:对比分类数据
柱状图适合对比不同分类的数值大小,barplot函数会自动计算分类变量的均值,并添加误差棒展示数据波动情况。
# 绘制不同用餐时间的平均消费金额柱状图
sns.barplot(data=tips, x="time", y="total_bill")
plt.title("不同用餐时间平均消费金额对比")
plt.show()
热力图:展示变量相关性
热力图可以直观展示多个变量之间的相关系数,适合分析数据集的整体相关性情况,需要先通过pandas计算相关系数矩阵。
# 计算数值型变量的相关系数矩阵
corr_matrix = tips.select_dtypes(include=[np.number]).corr()
# 绘制热力图
sns.heatmap(corr_matrix, annot=True, cmap="coolwarm")
plt.title("变量相关性热力图")
plt.show()
样式与参数调整技巧
Seaborn提供了多种预设样式,可以通过set_style函数快速切换,同时支持调整图表尺寸、字体大小等参数,让图表更符合展示需求。
# 设置图表样式为白色网格
sns.set_style("whitegrid")
# 设置图表尺寸
plt.figure(figsize=(10, 6))
# 绘制箱线图展示不同日期的消费分布
sns.boxplot(data=tips, x="day", y="total_bill")
plt.title("不同日期消费金额分布箱线图")
plt.show()
综合案例:多维度数据可视化
下面通过一个综合案例,结合多个Seaborn功能,展示多维度数据的可视化分析流程,同时调整图表样式让整体呈现更美观。
# 设置整体样式
sns.set_style("darkgrid")
sns.set_palette("pastel")
# 创建画布,设置子图布局
fig, axes = plt.subplots(1, 2, figsize=(14, 6))
# 左侧子图:不同性别、吸烟状态的小费比例柱状图
sns.barplot(data=tips, x="sex", y="tip", hue="smoker", ax=axes[0])
axes[0].set_title("不同性别与吸烟状态的小费对比")
# 右侧子图:消费金额的分布直方图
sns.histplot(data=tips, x="total_bill", kde=True, ax=axes[1])
axes[1].set_title("消费金额分布直方图")
# 调整子图间距
plt.tight_layout()
plt.show()
注意事项
- Seaborn的绘图函数大多依赖matplotlib进行最终渲染,所以调整坐标轴、标题等操作可以结合matplotlib的相关函数完成。
- 如果绘制的图表中文显示异常,需要提前配置matplotlib的中文字体,避免乱码问题。
- 处理大规模数据集时,建议先对数据进行采样或者聚合,避免绘制过于密集的图表导致可读性下降。
PythonSeaborn数据可视化matplotlib修改时间:2026-07-12 00:09:24