当前位置:   article > 正文

(2022.5)Pyhthon Matplotlib实现在图中绘制多子图(一纸多图)_ax = ax.ravel()

ax = ax.ravel()

目录

前言

一、从指定路径下读取

二、手动添加路径

总结


前言

写Paper或者做CW时,可能会遇见需要将多张图片绘制在一起的情景,使用PS或拼图工具可能会比较麻烦。

这次给大家介绍两种Pyhthon的方式,一种是读取指定路径下所有图片,另一种是手动添加图片路径。


一、从指定路径下读取

思路是先遍历路径下所有图片,然后再画图,画好的图会自动保存。(注意:使用时替换为自己的路径)

plt.subplots中三个参数依次为行和列中子图的个数,以及子图的大小

使用mpimg.imread读取图片

set_title为图片对应的标题,默认显示图片名,也可以自己按需设置

plt.tight_layout可以让子图间距更小,排列更紧凑

  1. import os
  2. import matplotlib.pyplot as plt
  3. import matplotlib.image as mpimg
  4. img = []
  5. labels = []
  6. figure_num = 0
  7. for root, dirs, names in os.walk("C:Users\Administrator\Desktop\Figure_2"):
  8. for filename in names:
  9. img.append(os.path.join(root, filename))
  10. figure_num += 1
  11. labels.append(filename)
  12. fig, ax = plt.subplots(nrows = 2, ncols = 2, figsize = (10, 10))
  13. ax = ax.ravel(order = 'C')
  14. for i in range(figure_num):
  15. ax[i].imshow(mpimg.imread(img[i]))
  16. ax[i].set_title(labels[i], fontsize=40)
  17. ax[i].set_xticks([])
  18. ax[i].set_yticks([])
  19. plt.tight_layout()
  20. plt.savefig('C:Users\Administrator\Desktop\Figure_2')
  21. plt.show()

以下是实现效果:

二、手动添加路径

示例为4张子图的绘制,可按需调整,步骤如下:

1. 更改plt.subplots中的参数

2. 复制粘贴每张子图的四行代码,并更改ax[][]中的数值

实现代码如下:

  1. figure, ax = plt.subplots(nrows = 2, ncols = 2, figsize = (10, 10))
  2. # 图一
  3. ax[0][0].imshow(mpimg.imread("C:Users\Administrator\Desktop\Figure_2\\1.jpg"))
  4. ax[0][0].set_title('1', fontsize = 40)
  5. ax[0][0].set_xticks([])
  6. ax[0][0].set_yticks([])
  7. # 图二
  8. ax[0][1].imshow(mpimg.imread("C:Users\Administrator\Desktop\Figure_2\\2.jpg"))
  9. ax[0][1].set_title('2', fontsize = 40)
  10. ax[0][1].set_xticks([])
  11. ax[0][1].set_yticks([])
  12. # 图三
  13. ax[1][0].imshow(mpimg.imread("C:Users\Administrator\Desktop\Figure_2\\3.jpeg"))
  14. ax[1][0].set_title('3', fontsize = 40)
  15. ax[1][0].set_xticks([])
  16. ax[1][0].set_yticks([])
  17. # 图四
  18. ax[1][1].imshow(mpimg.imread("C:Users\Administrator\Desktop\Figure_2\\4.jpg"))
  19. ax[1][1].set_title('4', fontsize = 40)
  20. ax[1][1].set_xticks([])
  21. ax[1][1].set_yticks([])
  22. plt.tight_layout()
  23. plt.savefig('C:Users\Administrator\Desktop\Figure_2')
  24. plt.show()


总结

以上就是两种实现的方法,都很简单,复制代码并更改路径即可使用。

欢迎大家在评论分享看法和意见,谢谢。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/612726
推荐阅读
相关标签
  

闽ICP备14008679号