栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

(2022.5)Pyhthon Matplotlib实现在图中绘制多子图(一纸多图)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

(2022.5)Pyhthon Matplotlib实现在图中绘制多子图(一纸多图)

目录

前言

一、从指定路径下读取

二、手动添加路径

总结


前言

写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:UsersAdministratorDesktopFigure_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:UsersAdministratorDesktopFigure_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:UsersAdministratorDesktopFigure_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:UsersAdministratorDesktopFigure_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:UsersAdministratorDesktopFigure_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:UsersAdministratorDesktopFigure_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:UsersAdministratorDesktopFigure_2')
plt.show()

总结

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

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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/875614.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号