matplotlib 读取图像并作为子图插入

bihw5rsg  于 2022-11-15  发布在  其他
关注(0)|答案(2)|浏览(119)

我用不同的python脚本创建了6个png图。
由同一脚本创建的打印示例:

import numpy as np
import matplotlib.pyplot as plt

plot_num=6
for num in np.arange(plot_num):
    fig, ax = plt.subplots()
    x=np.arange(10)
    y=np.random.rand(10,)
    plt.plot(x,y, marker='o',mfc='red')
    plt.savefig('plot_'+str(num)+'.png')

我想读取中保存的图,并生成一个3(列) 2(行)的普通图。*

什么是最好的解决方案呢?
以下代码大致显示了我所需的内容,但它显示了其他轴,并且我不知道如何调整地块之间的垂直距离和水平距离。

import matplotlib.pyplot as plt
from PIL import Image
from IPython.display import Image, display

fig,ax = plt.subplots(2,3)

filenames=['plot_{}.png'.format(i) for i in range(6)] 

for i in range(6):
    with open(filenames[i],'rb') as f:
        image=Image.open(f)
        ax[i%2][i//2].imshow(image)

display(fig)

z4bn682m

z4bn682m1#

Matplotlibs subplot functions可能正合你的口味,但是据我所知,它们是用于创作的。
编辑:重新阅读您的问题:是否可以使用其他python脚本作为该脚本的库,然后添加每个单独的脚本作为子情节?

xfb7svmp

xfb7svmp2#

import matplotlib.pyplot as plt

my_dpi=300
fig, ax = plt.subplots(nrows=2, ncols=3, figsize=(4,2), dpi=my_dpi)

plt.subplots_adjust(left=0.01,
                bottom=0.1,
                right=0.9,
                top=0.9,
                wspace=0,
                hspace=-0.3)

filenames=['plot_{}.png'.format(i) for i in range(6)] 

for i in range(6):
    with open(filenames[i],'rb') as f:
        image=plt.imread(f)
        ax[i%2][i//2].axis('off')
        ax[i%2][i//2].imshow(image)

相关问题