Python 3.x Python并排显示包含多个子图的两个图形

Python 3.x Python并排显示包含多个子图的两个图形,python-3.x,matplotlib,Python 3.x,Matplotlib,如标题所述,在使用matplotlib.pyplot时,可以将两个图形放在一个图形中 使用此代码,我生成如下图像: def plot_output_image(label, clothes): plt.clf() fig = plt.figure(figsize=(5, 2)) columns = 5 rows = 2 for i in range(1, columns * rows + 1): filename = similar_images['class'].iloc[i - 1

如标题所述,在使用matplotlib.pyplot时,可以将两个图形放在一个图形中

使用此代码,我生成如下图像:

def plot_output_image(label, clothes):
plt.clf()
fig = plt.figure(figsize=(5, 2))
columns = 5
rows = 2

for i in range(1, columns * rows + 1):
    filename = similar_images['class'].iloc[i - 1] + '/' + str(similar_images['id'].iloc[i - 1]) + '.jpg'
    img = load_img((files.small_images_classes_directory / filename).absolute().as_posix())
    img = img_to_array(img) / 255
    fig.add_subplot(rows, columns, i)
    plt.axis('off')
    plt.imshow(img)

plt.savefig((files.ROOT / 'similarity-output' / label / ('out_' + clothes)).absolute().as_posix())
plt.close()

如何将第二个图形并排放置,使输出变成这样?

对于复杂布局,可以使用
GridSpec
subplot2grid()
生成可以跨多行/列的子图。有关更多信息,请参阅

例如,使用gridspec可以执行以下操作:

from matplotlib import gridspec
gs00 = gridspec.GridSpec(1,2, width_ratios=[1,2])
gs01 = gridspec.GridSpecFromSubplotSpec(2,5, subplot_spec=gs00[0,1])
fig = plt.figure(figsize=(8,3))
left_ax = fig.add_subplot(gs00[0,0])
small_axs = [fig.add_subplot(gs01[i,j]) for i in range(2) for j in range(5)]

对于复杂布局,可以使用
GridSpec
subplot2grid()
生成可以跨多行/列的子图。有关更多信息,请参阅

例如,使用gridspec可以执行以下操作:

from matplotlib import gridspec
gs00 = gridspec.GridSpec(1,2, width_ratios=[1,2])
gs01 = gridspec.GridSpecFromSubplotSpec(2,5, subplot_spec=gs00[0,1])
fig = plt.figure(figsize=(8,3))
left_ax = fig.add_subplot(gs00[0,0])
small_axs = [fig.add_subplot(gs01[i,j]) for i in range(2) for j in range(5)]