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

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

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

使用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()展示出子图,运行结如图所示:

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

 

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

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

你可能感兴趣的:(python,matplotlib,机器学习)