用于创建子图
plt.subplot()
是 Matplotlib 中用于创建子图的函数,通过将一个图形窗口划分为多个子区域,可以同时绘制多个相关图表。以下是其核心用法及示例:
一、基本语法
plt.subplot(nrows, ncols, index, **kwargs)
-
nrows :子图的行数(必填)
-
ncols :子图的列数(必填)
-
index :当前子图在网格中的位置(必填)
-
kwargs :其他关键字参数(如标题、轴标签等)
二、示例说明
-
创建 2x2 子图网格
import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 10, 1) for i in range(1, 5): plt.subplot(2, 2, i) plt.plot(x, x **2) plt.title(f'Subplot {i}') plt.show()
该代码将生成 2 行 2 列的子图,分别绘制 $y=x^2$、$y=x^3$、$y=x^4$、$y=x^5$ 的图像。
-
共享轴的子图
plt.subplot(2, 2, 1) plt.plot(x, x, 'r-') plt.subplot(2, 2, 2) plt.plot(x, -x, 'b-') plt.subplot(2, 2, 3, sharex=True) plt.plot(x, x **2, 'g-')
在这个例子中,第二列的两个子图共享 x 轴,第三列的子图与前两列共享 y 轴。
-
使用三位数参数
三位数参数可简化调用,例如
plt.subplot(221)
等效于plt.subplot(2, 2, 1)
。
三、注意事项
-
索引从 1 开始 :子图位置从 1 开始编号,例如
subplot(2, 2, 1)
表示左上角。 -
图形布局 :通过调整
nrows
和ncols
可灵活控制布局,例如subplot(1, 3, 1)
创建单行三列布局。 -
与其他绘图函数的结合 :
plt.subplots()
可与plt.plot()
等函数结合使用,例如:fig, axs = plt.subplots(3, 1) for i in range(3): axs[i].plot(x, np.sin(x + i))
该代码创建 3 个子图,分别绘制正弦函数的不同相位。
四、扩展功能
-
共享轴与标签 :通过
sharex
、sharey
参数实现子图间轴共享。 -
子图标题与布局调整 :使用
title()
、set_xlabel()
等方法自定义子图属性。
通过以上方法,plt.subplot()
提供了灵活的图形布局能力,适用于数据对比、多变量分析等场景。