Matplotlib宽高比的正确图形大小

Matplotlib宽高比的正确图形大小,matplotlib,Matplotlib,给出一个图像列表,每个图像的大小(H,W)和给定的绘图(n_行,n_列)。是否有计算正确体型大小的公式?例如,对于以下代码: images = [np.random.rand(20, 22) for i in range(32)] fig = plt.figure(figsize=(6, 14)) axes = [fig.add_subplot(9,3,i+1) for i in range(9)] for c, ax in enumerate(axes): ax.set_xtick

给出一个图像列表,每个图像的大小(H,W)和给定的绘图(n_行,n_列)。是否有计算正确体型大小的公式?例如,对于以下代码:

images = [np.random.rand(20, 22) for i in range(32)]

fig = plt.figure(figsize=(6, 14))
axes = [fig.add_subplot(9,3,i+1) for i in range(9)]

for c, ax in enumerate(axes):
    ax.set_xticklabels([])
    ax.set_yticklabels([])
    ax.imshow(images[c])

fig.subplots_adjust(wspace=0, hspace=0)

我想消除图像之间的间隙。因此,我手动发现figsize=(6,17)产生了我想要的结果:

就这么简单:

fig = plt.figure(figsize=(6, 14))
axes = [fig.add_subplot(9,3,i+1) for i in range(9)]

fig.subplots_adjust(wspace=0, hspace=0)
for c, ax in enumerate(axes):
    ax.set_xticklabels([])
    ax.set_yticklabels([])
    ax.imshow(images[c], aspect='auto')
                                  ^^
输出:


由于您询问了公式,我将其标记为的副本。复制答案使用公式调整子批次参数。当然,你也可以同样地重新调整它们的距离,以得到一个数字大小。@ImportanceOfBeingErnest谢谢!我注意到,当提供了不正确的图形大小时,这会缩小/拉伸图像大小。