Python作为数据分析领域的主流编程语言,拥有丰富的可视化工具库,其中Matplotlib和Seaborn是最常用的两个选择。Matplotlib是基础绘图库,灵活度高可定制性强,Seaborn基于Matplotlib封装,默认样式更美观,适合快速生成统计类图表。

环境准备
使用前需要先安装对应的库,可通过pip命令完成安装:
# 安装Matplotlib pip install matplotlib # 安装Seaborn pip install seaborn
安装完成后在代码中导入相关模块即可使用:
import matplotlib.pyplot as plt import seaborn as sns import numpy as np import pandas as pd
Matplotlib基础绘图
绘制折线图
折线图适合展示数据随时间或有序类别的变化趋势,以下是生成简单折线图的示例:
# 生成示例数据
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 创建画布和坐标轴
plt.figure(figsize=(8, 4))
# 绘制折线
plt.plot(x, y, label="sin(x)", color="blue", linewidth=2)
# 添加标题和坐标轴标签
plt.title("正弦函数折线图")
plt.xlabel("X轴")
plt.ylabel("Y轴")
# 显示图例
plt.legend()
# 显示网格
plt.grid(True)
# 展示图表
plt.show()
绘制柱状图
柱状图适合对比不同类别的数值大小,示例代码如下:
# 类别数据
categories = ["类别A", "类别B", "类别C", "类别D"]
values = [23, 45, 56, 32]
plt.figure(figsize=(8, 4))
# 绘制柱状图
plt.bar(categories, values, color=["red", "green", "blue", "orange"])
plt.title("各类别数值对比柱状图")
plt.xlabel("类别")
plt.ylabel("数值")
plt.show()
Seaborn进阶绘图
绘制散点图
Seaborn的散点图可以自动添加回归拟合线,适合分析两个变量的相关关系:
# 生成示例数据
np.random.seed(10)
data = pd.DataFrame({
"x": np.random.randn(100),
"y": np.random.randn(100) * 0.5 + np.random.randn(100) * 0.5
})
# 绘制散点图并添加回归线
sns.regplot(data=data, x="x", y="y", scatter_kws={"color": "blue"}, line_kws={"color": "red"})
plt.title("变量X与Y的散点关系图")
plt.show()
绘制热力图
热力图适合展示二维数据的数值分布,常用于相关性分析:
# 生成相关性矩阵数据
corr_data = pd.DataFrame(np.random.randn(5, 5), columns=["指标1", "指标2", "指标3", "指标4", "指标5"]).corr()
# 绘制热力图
plt.figure(figsize=(8, 6))
sns.heatmap(corr_data, annot=True, cmap="coolwarm", fmt=".2f")
plt.title("指标相关性热力图")
plt.show()
两个库的核心差异对比
以下是Matplotlib和Seaborn的主要差异对比:
| 对比维度 | Matplotlib | Seaborn |
|---|---|---|
| 定位 | 基础绘图库,底层灵活 | 统计可视化库,上层封装 |
| 默认样式 | 样式较朴素,需要手动调整 | 默认样式美观,符合出版标准 |
| 适用场景 | 需要高度定制化的图表 | 快速生成统计类图表 |
| 学习成本 | 较高,需要掌握更多参数 | 较低,常用图表几行代码即可实现 |
常见问题与注意事项
- 中文显示问题:Matplotlib默认不支持中文,需要手动设置字体,示例代码如下:
plt.rcParams["font.sans-serif"] = ["SimHei"] plt.rcParams["axes.unicode_minus"] = False
- 图表保存:可以使用
plt.savefig("图表名称.png", dpi=300)方法将图表保存为本地文件,dpi参数可调整图片清晰度。 - 图表样式调整:Seaborn提供了多种内置主题,可通过
sns.set_style("whitegrid")切换,可选值包括darkgrid、whitegrid、dark、white、ticks。
PythonMatplotlibSeaborn数据可视化修改时间:2026-07-14 21:21:25