使用Python中的matplotlib将多个图片显示到一张图内

文章讲述了如何利用Python的matplotlib库中的subplot和imshow等功能,将四个弹性模量预测结果的图像整合到同一张图中,以便于论文或报告中展示。通过调整subplot参数和使用imread读取图像,然后消除子图的坐标刻度,可以有效地布局和展示图像数据。
摘要由CSDN通过智能技术生成

在我们写论文或是汇报时,经常需要整合所得到的可视化数据结果,插入我们的论文中。如下所示的情况,我们需要将四个相关的弹性模量预测结果在一张图里展示。

使用matplotlib库中的子图(subplot)功能可以轻松而高效地实现这一过程,避免繁琐地手动调节。

具体代码如下,我们应确保python文件与图片在同理目录下(同一个文件夹里)。

import matplotlib.pyplot as plt

im = plt.imread('RL0.png')
im2 = plt.imread('RL2.png')
im3 = plt.imread('RL3.png')
im4 = plt.imread('RL4.png')

注意,imread是 Matplotlib 库中的一个函数,用于从指定路径读取图像文件并将其作为 NumPy 数组返回。该函数支持多种图像文件格式,包括PNG、JPEG、BMP、GIF等等。通过调用该函数,可以将图像数据加载到Python环境中,以便进一步处理和分析。

plt.subplot(221, xlabel = '(1)', title = "K_VRH")
plt.imshow(im)

我们通过plt.subplot来设置子图的参数,其中数字221表示子图总共有2行2列(4个),1则表示位于左上方的第一个图。

前文提到的plt.imread函数通常与其他 Matplotlib 库中的函数一起使用,例如 plt.imshow,用于显示和处理图像数据。 

plt.xticks([])
plt.yticks([])

运行这两行代码以消除子图中的横纵坐标刻度(使得横纵坐标显示为空),因为我们要处理的图像一般都有刻度了。

plt.subplot(222, xlabel = '(2)', title = "G_VRH")
plt.imshow(im2)
plt.xticks([])
plt.yticks([])
plt.subplot(223, xlabel = '(3)', title = "Elastic anisotropy")
plt.imshow(im3)
plt.xticks([])
plt.yticks([])
plt.subplot(224, xlabel = '(4)', title = "Poisson ratio")
plt.imshow(im4)
plt.xticks([])
plt.yticks([])

再用同样的方式设置其他三个子图,注意本例子总共四个字图,故字图(subplot)的最后一位数字依次从2到4增大,结合之前的第一个子图,即表示各个子图位置从左上到右下。

plt.subplots_adjust(left=None, bottom=None, right=None, top=None, wspace=None, hspace=0.5)
plt.show()

最后,我们通过plt.subplot_adjust来调节各个子图的间距,用plit.show()展示出子图,运行结如图所示:

 

于是,我们便将多个图像整合到了一张图上,再倒入到论文中即可。

注意,改变plt.subplot()中的数字即可改变子图的数量即位置分布哦。

要在matplotlib拼接多个x和多个y画一个图,可以使用subplot函数来实现。 首先,需要在画布上创建一个大的subplot,并在其绘制多个小的subplot。可以使用subplot函数的参数来指定subplot的位置和大小。例如,subplot(2,2,1)表示将画布分成2行2列,当前的subplot位于第1个位置。 接下来,可以使用plot函数分别在每个小的subplot绘制对应的x和y。可以在每个subplot使用不同的颜色、线型和标记来区分不同的数据。 最后,可以使用xlabel和ylabel函数来添加x轴和y轴的标签,以及使用title函数来添加整个图的标题。 下面是一个示例代码,演示如何使用subplot函数拼接多个x和多个y画一个图: import matplotlib.pyplot as plt # 创建一个大的subplot plt.subplot(2, 2, 1) # 绘制第1个x和y x1 = [1, 2, 3, 4] y1 = [1, 4, 9, 16] plt.plot(x1, y1, 'ro-') # 'ro-' 表示红色的圆点连成一条线 # 绘制第2个x和y plt.subplot(2, 2, 2) x2 = [1, 2, 3, 4] y2 = [1, 8, 27, 64] plt.plot(x2, y2, 'g^-') # 'g^-' 表示绿色的三角形连成一条线 # 绘制第3个x和y plt.subplot(2, 2, 3) x3 = [1, 2, 3, 4] y3 = [1, 16, 81, 256] plt.plot(x3, y3, 'bs-') # 'bs-' 表示蓝色的正方形连成一条线 # 绘制第4个x和y plt.subplot(2, 2, 4) x4 = [1, 2, 3, 4] y4 = [1, 32, 243, 1024] plt.plot(x4, y4, 'y*-') # 'y*-' 表示黄色的星号连成一条线 # 添加标签和标题 plt.xlabel('x') plt.ylabel('y') plt.title('Multiple x and y') # 显示图形 plt.show() 上述代码通过subplot函数创建了一个2行2列的画布,然后在不同的小subplot分别绘制了四组x和y,并添加了轴标签和标题。最后通过show函数将图形显示出来。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值