目录
前言
写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()
总结
以上就是两种实现的方法,都很简单,复制代码并更改路径即可使用。
欢迎大家在评论分享看法和意见,谢谢。