非转载,详细解释python参数fig.add_subplot(111),一遍就懂

非转载,详细解释python参数fig.add_subplot(111),一遍就懂

看了下CSDN原本已有的博客,写的都不是很清楚。就自己稍微写下,以后也方便查看。

文档的描述

链接: link.

add_subplot(nrows, ncols, index, **kwargs)

Either a 3-digit integer or three separate integers describing the position of the subplot. If the three integers are nrows, ncols, and index in order, the subplot will take the index position on a grid with nrows rows and ncols columns. index starts at 1 in the upper left corner and increases to the right.

大致意思就是输入 三位数字,abc,根据abc将原图划分成a行,b列。那么就会将原图划分成a*b个子图,然后c就是我们的下标。我们通过c来指定展示我们要的子图。下面贴几个例子帮助理解。

例子1

这里就可以理解为做了一个长为10,宽为5的figure,然后add_subplot(111),a=1,b=1,c=1,表示把他的行和列都分为1份,其实就是保持不变,所以子图只有1*1=1个,那么当我们最后选择展示第1个子图时,其实就是展示他本身。

f = plt.figure(figsize=(10,5))
f.add_subplot(111)

这里就可以理解为做了一个长为10,宽为5的figure,然后add_subplot(111),a=1,b=1,c=1,表示把他的行和列都分为1份,其实就是保持不变,所以子图只有1*1=1个,那么当我们最后选择展示第1个子图时,其实就是展示他本身。

例子2

现在我们把相同的图分成四份,进行比较.

这里就可以理解为做了一个长为10,宽为5的figure,然后add_subplot(221),a=2,b=2,c=1,表示把他的行和列都分为2份,其实就是保持不变,所以子图只有2*2=4个,那么当我们最后选择展示第1个子图时,其实就是展示左上角第一个子图(注意顺序,从左往右,从上往下)。

f = plt.figure(figsize=(10,5))
f.add_subplot(221)

在这里插入图片描述

例子3

或许这样还是容易造成困扰,结合下面这个例子,就比较容易理解了.第一张图我们把figure分成4份,并且全部展示,那么其实最后四个子图拼起来后的图就和例子1一样。

第二张图我们选择展示figure的第一张子图和第四张子图,那么得到的就是左上角的第一张图和右下角的最后一张图。

f = plt.figure(figsize=(10,5))
f.add_subplot(221)
f.add_subplot(222)
f.add_subplot(223)
f.add_subplot(224)

在这里插入图片描述

f = plt.figure(figsize=(10,5))
f.add_subplot(221)
f.add_subplot(224)

在这里插入图片描述

注意

对于f.add_subplot(abc)来说,c是大于等于1小于等于ab,这样符合常理,毕竟总共就ab的子图。

另外当a,b,c大于等于10时,可以采用f.add_subplot(a,b,c)的写法。

  • 30
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
python中的fig.add_subplot()方法可以用来在matplotlib中创建一个子图。该函数允许我们将一个大的绘图区域分成多个小图区域,并在每个小图区域上进行作图。在使用该函数时,需要指定子图所在的位置。位置可以通过一个三元组(grid),表示子图所在的行数、列数和索引。该函数还可以接收其他参数,比如图形标题、坐标轴标签等。 对于fig.add_subplot(grid)的grid参数,我们可以用grid = (nrows, ncols, index)来表示。其中,nrows表示子图所在的行数,ncols表示子图所在的列数,index表示子图所在的位置。例如,如果我们要在一张绘图区域上创建一个只有一个子图的图,可以这样做: ```python import matplotlib.pyplot as plt fig = plt.figure() ax = fig.add_subplot(1, 1, 1) # 在子图上进行绘图 ax.plot([1, 2, 3], [4, 5, 6]) ``` 其中,fig为我们创建的图形对象,ax为子图对象,使用add_subplot(1, 1, 1)方法即可创建一个只有一个子图的图形。这里的(1, 1, 1)表示子图的位置,即第1行第1列,占据整个图形。 当我们需要在一张图中创建多个子图时,可以按照类似的方式来指定子图的位置。例如,要在一张图中创建3个子图,我们可以使用如下代码: ```python import matplotlib.pyplot as plt fig = plt.figure() # 创建第一个子图 ax1 = fig.add_subplot(2, 2, 1) # 在第一个子图中进行绘图 ax1.plot([1, 2, 3], [4, 5, 6]) # 创建第二个子图 ax2 = fig.add_subplot(2, 2, 2) # 在第二个子图中进行绘图 ax2.scatter([1, 2, 3], [4, 5, 6]) # 创建第三个子图 ax3 = fig.add_subplot(2, 2, 3) # 在第三个子图中进行绘图 ax3.bar([1, 2, 3], [4, 5, 6]) # 显示图形 plt.show() ``` 这里我们使用fig.add_subplot(2, 2, 1)、fig.add_subplot(2, 2, 2)和fig.add_subplot(2, 2, 3)来创建了3个子图,它们分别位于(1, 1)、(1, 2)和(2, 1)位置,占据了整个图形的4个空白区域中的前3个。限制条件是行数和列数的乘积必须大于或等于子图个数。此外,对于这3个子图,我们还进行了不同类型的绘图,即在第一个子图中使用了plot方法,在第二个子图中使用了scatter方法,在第三个子图中使用了bar方法。 总之,fig.add_subplot(grid)方法可用于在matplotlib中创建一个或多个子图,并为每个子图指定位置以及相关属性。该方法在数据分析机器学习、深度学习等领域都得到了广泛应用。通过对该方法的熟悉和掌握,我们可以更加方便地在python中进行数据可视化和图形分析。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值