首页 > 解决方案 > Matplotlib 正确的纵横比图形大小

问题描述

给定一个大小为 (H, W) 的图像列表和具有 (n_rows, n_cols) 的绘图。是否有计算正确身材尺寸的公式?例如,对于以下代码:

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) 产生了我想要的:

在此处输入图像描述

标签: matplotlib

解决方案


就这么简单:

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')
                                  ^^

输出:

在此处输入图像描述


推荐阅读