matplotlib subplot 多子图绘制详解与代码示例
本文介绍如何在 matplotlib 中使用 subplot() 函数绘制多个子图。通过 numRows、numCols 和 plotNum 参数定义网格布局,实现多图表组合展示。附带完整 Python 代码示例,涵盖坐标轴设置与数据绘图,帮助开发者快速掌握子图创建方法。
matplotlib subplot 函数基础
在 matplotlib 库中,Figure 对象支持容纳多个 Axes(坐标轴/子图)。利用 subplot() 函数可以便捷地创建并绘制这些子图,其基本调用语法如下所示:
subplot 参数说明
subplot(numRows, numCols, plotNum)
网格布局与位置解析
该函数将绘图区域划分为 numRows 行与 numCols 列组成的网格。plotNum 参数用于指定当前子图在网格中的具体位置。具体而言,如何确定 plotNum 对应的坐标位置呢?
假设设置 numRows 为 3,numCols 为 2,则整个绘图区域呈现为 3 行 2 列的布局。各子图位置可用坐标 (row, col) 表示,例如 (1,1)、(1,2) 直至 (3,2)。当 plotNum 设为 1 时,它对应网格中的第一个位置,即第 1 行第 1 列的子图区域;
子图绘制代码示例
import numpy as np
import matplotlib.pyplot as plt
# 分成2x2,占用第一个,即第一行第一列的子图
plt.subplot(221)
# 分成2x2,占用第二个,即第一行第二列的子图
plt.subplot(222)
# 分成2x1,占用第二个,即第二行
plt.subplot(212)
plt.show()
import matplotlib.pyplot as plt
import numpy as np
# plt.plot([1, 2, 3, 4], [1, 4, 9, 16], 'ro')
# plt.axis([0, 6, 0, 20])
# plt.show()
# t = np.arange(0., 5., 0.2)
# plt.plot(t, t, 'r--', t, t ** 2, 'bs', t, t ** 3, 'g^')
def f(t):
return np.exp(-t) * np.cos(2 * np.pi * t)
t1 = np.arange(0, 5, 0.1)
t2 = np.arange(0, 5, 0.02)
plt.figure(12)
plt.subplot(221)
plt.plot(t1, f(t1), 'bo', t2, f(t2), 'r--')
plt.subplot(222)
plt.plot(t2, np.cos(2 * np.pi * t2), 'r--')
plt.subplot(212)
plt.plot([1, 2, 3, 4], [1, 4, 9, 16])
plt.show()
以上内容涵盖了 matplotlib 中 subplot 的基本用法,希望能为读者的学习提供便利,也欢迎大家继续支持本站获取更多技术资源。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









