点击查看【bilibili】

规则划分区域,划分数=图片数

将画布分为2x2=4个部分,绘制4个图,如下图所示。
image.png

使用的函数是subplot(m,n,p)

  • m代表行
  • n代表列
  • p代表第几个图(按从上到下,从左到右排序)

上图使用的代码如下

  1. #设置画布
  2. plt.figure(figsize=(20,8))
  3. #绘制第1个图
  4. plt.subplot(2,2,1)#1,2,1分别代表:2x2,第1
  5. plt.plot(np.random.random_integers(-20,20,20))
  6. plt.title('图1')
  7. #绘制第2个图
  8. plt.subplot(2,2,2)#1,2,2分别代表:2x2,第2
  9. plt.plot(np.random.random_integers(-20,20,20))
  10. plt.title('图2')
  11. #绘制第3个图
  12. plt.subplot(2,2,3)#1,2,1分别代表:2x2,第3
  13. plt.plot(np.random.random_integers(-20,20,20))
  14. plt.title('图3')
  15. #绘制第4个图
  16. plt.subplot(2,2,4)#1,2,2分别代表:2x2,第4
  17. plt.plot(np.random.random_integers(-20,20,20))
  18. plt.title('图4')
  19. plt.show()

规则划分区域,划分数≠图片数,区域将重新整合再划分

下图划分为2x2=4个区域,上面2个小图,下面一个大图
image.png


绘制的原理

  • 将区域划分为2x2,可容纳4个图
  • 上面两个简单,分别是(2,2,1)和(2,2,2)
  • 下面的大图,占用了(2,2,3)和(2,2,4)两个位置
  • 此时需要重新划分:将区域划分为2x1,可容纳2个图
    • 将上面2个小图看做整体,占用了(2,1,1)的位置
    • 下面的大图,占用的是(2,1,2)的位置

image.png
这种组合图的代码逻辑如下(图不同)

  1. #设置画布
  2. plt.figure(figsize=(20,8))
  3. #绘制第1个图
  4. plt.subplot(2,2,1)#2x2,第1
  5. plt.plot(np.random.random_integers(-20,20,20))
  6. plt.title('图1')
  7. #绘制第2个图
  8. plt.subplot(2,2,2)#2x2,第2
  9. plt.plot(np.random.random_integers(-20,20,20))
  10. plt.title('图2')
  11. #绘制第3个大图
  12. plt.subplot(2,1,2)#2x1,第2
  13. plt.plot(np.random.random_integers(-20,20,20))
  14. plt.title('图3')
  15. plt.show()

image.png


下面的组合图,也是同样的原理image.png
代码如下

#设置画布
plt.figure(figsize=(20,8))
plt.subplot(2,2,1)#2x2,第1个
plt.plot(np.random.random_integers(-20,20,20))
plt.title('图1')
#绘制第2个图
plt.subplot(2,2,3)#2x2,第3个
plt.plot(np.random.random_integers(-20,20,20))
plt.title('图2')
#绘制第3个大图
plt.subplot(1,2,2)#2x1,第2个
plt.plot(np.random.random_integers(-20,20,20))
plt.title('图3')
plt.show()