学科分类
目录
数据分析

通过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所示。

img

图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所示的窗口。

img

图2 在选中的子图上绘图

点击此处
隐藏目录