赞
踩
目录
写Paper或者做CW时,可能会遇见需要将多张图片绘制在一起的情景,使用PS或拼图工具可能会比较麻烦。
这次给大家介绍两种Pyhthon的方式,一种是读取指定路径下所有图片,另一种是手动添加图片路径。
一、从指定路径下读取
思路是先遍历路径下所有图片,然后再画图,画好的图会自动保存。(注意:使用时替换为自己的路径)
plt.subplots中三个参数依次为行和列中子图的个数,以及子图的大小
使用mpimg.imread读取图片
set_title为图片对应的标题,默认显示图片名,也可以自己按需设置
plt.tight_layout可以让子图间距更小,排列更紧凑
- import os
- import matplotlib.pyplot as plt
- import matplotlib.image as mpimg
-
- img = []
- labels = []
- figure_num = 0
-
- for root, dirs, names in os.walk("C:Users\Administrator\Desktop\Figure_2"):
- for filename in names:
- img.append(os.path.join(root, filename))
- figure_num += 1
- labels.append(filename)
-
- fig, ax = plt.subplots(nrows = 2, ncols = 2, figsize = (10, 10))
- ax = ax.ravel(order = 'C')
- for i in range(figure_num):
- ax[i].imshow(mpimg.imread(img[i]))
- ax[i].set_title(labels[i], fontsize=40)
- ax[i].set_xticks([])
- ax[i].set_yticks([])
- plt.tight_layout()
- plt.savefig('C:Users\Administrator\Desktop\Figure_2')
- plt.show()
以下是实现效果:
示例为4张子图的绘制,可按需调整,步骤如下:
1. 更改plt.subplots中的参数
2. 复制粘贴每张子图的四行代码,并更改ax[][]中的数值
实现代码如下:
- figure, ax = plt.subplots(nrows = 2, ncols = 2, figsize = (10, 10))
- # 图一
- ax[0][0].imshow(mpimg.imread("C:Users\Administrator\Desktop\Figure_2\\1.jpg"))
- ax[0][0].set_title('1', fontsize = 40)
- ax[0][0].set_xticks([])
- ax[0][0].set_yticks([])
- # 图二
- ax[0][1].imshow(mpimg.imread("C:Users\Administrator\Desktop\Figure_2\\2.jpg"))
- ax[0][1].set_title('2', fontsize = 40)
- ax[0][1].set_xticks([])
- ax[0][1].set_yticks([])
- # 图三
- ax[1][0].imshow(mpimg.imread("C:Users\Administrator\Desktop\Figure_2\\3.jpeg"))
- ax[1][0].set_title('3', fontsize = 40)
- ax[1][0].set_xticks([])
- ax[1][0].set_yticks([])
- # 图四
- ax[1][1].imshow(mpimg.imread("C:Users\Administrator\Desktop\Figure_2\\4.jpg"))
- ax[1][1].set_title('4', fontsize = 40)
- ax[1][1].set_xticks([])
- ax[1][1].set_yticks([])
- plt.tight_layout()
- plt.savefig('C:Users\Administrator\Desktop\Figure_2')
- plt.show()
以上就是两种实现的方法,都很简单,复制代码并更改路径即可使用。
欢迎大家在评论分享看法和意见,谢谢。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。