目录
[Matplotlib 简介](#Matplotlib 简介)
前言
Matplotlib 是 Python最基础也是最强大的绘图库之一,它是科学计算、数据可视化和工程模拟中最常见的可视化工具。本教程将系统性地介绍 Matplotlib 的用法,从基础的绘图函数,到子图、样式、动画、3D 绘图等高级用法,适合所有希望精通 Python 绘图的人。

Matplotlib 简介
Matplotlib 是一个 Python 2D 绘图库,可以生成出版质量级别的图形。
- 它可以与 NumPy、Pandas、SciPy 配合使用
- 默认画布是静态图(与 MATLAB 类似)
- 支持动态图(matplotlib.animation)
安装方式:
bash
pip install matplotlib
导入:
python
import matplotlib.pyplot as plt
快速入门
绘制正选函数,如下所示。
python
import numpy as np
import matplotlib.pyplot as plt
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y)
plt.title('正弦函数')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.grid(True)
plt.show()
图形结构解剖
Matplotlib 绘图的底层逻辑分为三个核心对象:

你可以使用面向对象方式明确控制:
python
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('对象式绘图')
常用绘图函数
- plot() 折线图(默认)
- scatter() 散点图
- bar() 柱状图
- hist() 直方图
- boxplot() 箱型图
- fill_between() 区域图
- imshow() 图像显示(灰度图)
- contour() 等高线
子图与布局
单行多列子图:
python
fig, axs = plt.subplots(1, 3, figsize=(12, 4))
网格布局:
python
fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[1, 1].bar([1,2,3], [3,4,5])
自定义位置:
python
from matplotlib.gridspec import GridSpec
样式与标注
线型:'-', '--', ':'
颜色:'r', 'g', '#3366cc'
标记:'o', '^', 's'
python
plt.plot(x, y, linestyle='--', color='red', marker='o')
中文字体与科学计数
中文显示:
python
plt.rcParams['font.family'] = 'SimHei' # 或 'Microsoft YaHei'
科学计数法:
python
ax.ticklabel_format(style='sci', axis='y', scilimits=(0,0))
图例、网格、坐标轴
python
plt.legend(loc='best')
plt.grid(True)
plt.xlim(0, 10)
plt.ylim(-1, 1)
动态图与动画
使用 `FuncAnimation`:
python
from matplotlib.animation import FuncAnimation
适用于波动、物理模拟、实时数据更新等场景。
三维绘图
使用 `mpl_toolkits.mplot3d`:
python
from mpl_toolkits.mplot3d import Axes3D
ax = fig.add_subplot(111, projection='3d')
ax.plot_surface(X, Y, Z)
常见问题与技巧
-
图像太小?试试 figsize=(12,6)
-
中文乱码?加上 plt.rcParams['font.family']
-
动画失效?确认调用 plt.show() 或保存 ani.save()