首页 > 解决方案 > 优化Python中许多子图之间的空间

问题描述

我正在使用一个循环来创建一系列子图,这些子图由每个垂直位置的 2 个水平图组成。可以有许多垂直位置,通常为 50-100 个。我无法优化地块之间的间距。当我使用循环创建图时,我拥有的垂直位置越多,每个水平图之间的间隙就越大。我希望这些图更接近,因为每个水平配对都是我试图展示的相关图像。

我曾尝试使用subplots_adjust(wspace=...),plt.tight_layout()subplots(constrained_layout=True),但都没有运气。

附加图像中提供了一个包含 10 个垂直图像的小阵列的示例(我知道我需要最后调整轴标签,但对于本示例而言,这无关紧要)

我错过了什么?我相信一定有办法做到这一点。

谢谢

例子

标签: pythonmatplotlibsubplot

解决方案


没有代码来重现您的问题,很难预测解决方案。也许你可以matplotlib.gridspec合理地结合使用figsize

# use reasonable figure size
fig = plt.figure(constrained_layout=True, figsize = (8, 20))

# create gridspec
gs = gridspec.GridSpec(ncols=2, nrows=8, figure=fig)

# add random plots
for i in range(8):
    ax1 = fig.add_subplot(gs[i, 0])
    ax2 = fig.add_subplot(gs[i, 1])
    
    # random data
    x1, y1, x2, y2 = np.random.normal(size = (4, 25))
    ax1.scatter(x1, y1, color = 'r')
    ax2.scatter(x2, y2, color = 'b')

推荐阅读