Matplotlib subplots()函数的用法(附带实例)
Matplotlib 中,使用 pyplot 模块中的 subplots() 函数,可以创建带有一个坐标系的图形。也就是说,使用该函数可以同时创建图形和坐标系,而无须分步创建它们。
subplots() 函数返回一个元组,其中包含两个元素,分别代表创建的图形和坐标系。为了便于后续代码处理刚创建的图形和坐标系,通常将 subplots() 函数的返回值赋值给 fig 和 ax 两个变量,fig 代表图形(Figure 对象),ax 代表坐标系(Axes 对象)。虽然可以为变量设置任何名称,但是 fig 和 ax 是命名惯例。
下面的代码将创建带有一个坐标系的图形:

图 1 带有一个坐标系的图形
如需在图形中创建多个坐标系,可以为 subplots() 函数指定前两个参数,它们表示要对图形进行划分的行数和列数,第一个参数表示行数,第二个参数表示列数。
下面的代码将整个图形划分为 2 行 3 列,相当于在该图形中创建 6 个坐标系:
程序创建的图形为:

图 2 带有多个坐标系的图形
subplots() 函数返回一个元组,其中包含两个元素,分别代表创建的图形和坐标系。为了便于后续代码处理刚创建的图形和坐标系,通常将 subplots() 函数的返回值赋值给 fig 和 ax 两个变量,fig 代表图形(Figure 对象),ax 代表坐标系(Axes 对象)。虽然可以为变量设置任何名称,但是 fig 和 ax 是命名惯例。
下面的代码将创建带有一个坐标系的图形:
import matplotlib.pyplot as plt fig,ax = plt.subplots() plt.show()创建的图形为:

图 1 带有一个坐标系的图形
坐标系中的 x 轴和 y 轴的取值范围默认为 0~1。
如需在图形中创建多个坐标系,可以为 subplots() 函数指定前两个参数,它们表示要对图形进行划分的行数和列数,第一个参数表示行数,第二个参数表示列数。
下面的代码将整个图形划分为 2 行 3 列,相当于在该图形中创建 6 个坐标系:
import matplotlib.pyplot as plt fig,axs = plt.subplots(2, 3) plt.show()由于创建的坐标系数量不止一个,所以将等号左侧的 ax 变量的名称改为复数形式 axs,此时 axs 变量的数据类型是 NumPy 中的 Ndarray 对象,而非 Matplotlib 中的 Axes 对象。
程序创建的图形为:

图 2 带有多个坐标系的图形