常用导入方式:import matplotlib.pyplot as plt。课堂示例优先使用面向对象写法:fig, ax = plt.subplots(),再通过 ax 完成绘图和设置。
创建 Figure 与 Axes
| 写法 | 作用 |
fig, ax = plt.subplots() | 创建一个 Figure 和一个 Axes |
plt.subplots(figsize=(8, 5)) | 指定图形尺寸 |
fig, axs = plt.subplots(2, 2) | 创建 2×2 子图 |
plt.show() | 显示图形 |
ax.clear() | 清空当前 Axes |
fig.clear() | 清空整个 Figure |
常用图表
| 写法 | 作用 |
ax.plot(x, y) | 折线图 |
ax.scatter(x, y) | 散点图 |
ax.bar(x, y) | 垂直柱状图 |
ax.barh(y, x) | 水平柱状图 |
ax.hist(x, bins=10) | 直方图 |
ax.boxplot(x) | 箱形图 |
ax.pie(values, labels=labels) | 饼图 |
ax.imshow(image) | 显示图像或二维矩阵 |
标题、坐标轴与图例
| 写法 | 作用 |
ax.set_title('Title') | 设置图标题 |
ax.set_xlabel('X') | 设置 x 轴标签 |
ax.set_ylabel('Y') | 设置 y 轴标签 |
ax.set_xlim(0, 10) | 设置 x 轴显示范围 |
ax.set_ylim(0, 100) | 设置 y 轴显示范围 |
ax.legend() | 显示图例 |
ax.grid(True) | 显示网格线 |
ax.tick_params(axis='x', rotation=45) | 旋转 x 轴刻度标签 |
ax.set_xticks(ticks) | 设置 x 轴刻度位置 |
ax.set_xticklabels(labels) | 设置 x 轴刻度文字 |
标注、布局与保存
| 写法 | 作用 |
ax.text(x, y, 'text') | 在指定坐标添加文字 |
ax.annotate('note', xy=(x, y)) | 为数据点添加注释 |
fig.suptitle('Title') | 设置整张 Figure 的总标题 |
fig.tight_layout() | 自动调整子图间距 |
plt.subplots(constrained_layout=True) | 创建时启用自动布局 |
axs[0, 1].plot(x, y) | 在指定子图上绘图 |
fig.savefig('figure.png', dpi=300) | 保存高分辨率图片 |
fig.savefig('figure.pdf') | 保存为矢量 PDF |
plt.close(fig) | 关闭 Figure,批量绘图时可释放资源 |
课堂提示:先区分 Figure(整张画布)和 Axes(具体坐标区域)。多数绘图和标题、坐标轴设置都在 ax 上完成;保存整张图时使用 fig.savefig()。