通过add_subplot()方法添加和选中子图
要想创建子图,除了使用pyplot模块的函数之外,还可以通过Figure类的add_subplot()方法添加和选中子图,该方法的语法格式如下:
add_subplot(* args,** kwargs )
上述方法中,*args
参数表示一个三位数的实数或三个独立的实数,用于描述子图的位置。比如“a, b, c”,其中a和b表示将Figure对象分割成a*b大小的区域,c表示当前选中的要操作的区域。子图将显示在具有a行和b列矩阵区域的第c个位置上。需要注意的是,c是从1开始编号的。
例如,调用add_subplot()方法时传入的是“2,2,1”,则会在的2*2的矩阵中编号为1的区域上绘图,如图1所示。
图1 创建并选中第一个子图
需要注意的是,每调用一次add_subplot()方法只会规划画布划分子图,但只会添加一个子图。当调用plot()函数绘制图形时,会画在最后一次指定子图的位置上。
为了让读者更好地理解,并且能正确地显示添加和选中子图的效果,接下来,以PyCharm工具为例,通过一个示例来演示如何创建子图和选中子图。例如,创建具有两行两列的矩阵区域,且在编号为3的子图上绘制图形,具体代码如下。
In [7]: # 引入matplotlib包
import matplotlib.pyplot as plt
import numpy as np
# 创建Figure实例
fig = plt.figure()
# 添加子图
fig.add_subplot(2, 2, 1)
fig.add_subplot(2, 2, 2)
fig.add_subplot(2, 2, 4)
fig.add_subplot(2, 2, 3)
# 在子图上作图
random_arr = np.random.randn(100)
# 默认是在最后一次使用subplot的位置上作图,即编号为3的位置
plt.plot(random_arr)
plt.show()
上述示例中,首先创建了一个Figure类对象fig,然后调用add_subplot()方法将fig对象划分为一个2行2列的矩阵区域,且最后选中了编号为3的子区域,这表明图形将绘制在该区域上,最后调用plot()函数根据创建的随机数组绘制了折线图。
运行程序后,弹出如图2所示的窗口。
图2 在选中的子图上绘图