【问题标题】:How to adjust different margins between subplots如何调整子图之间的不同边距
【发布时间】:2017-06-24 07:57:26
【问题描述】:

我想使用 matplotlib 调整子图之间的边距。例如,我有三个子图,3 行 * 1 列。我希望 ax0 和 ax1 之间的 hspace 为 0,并且 ax1 和 ax2 之间的 hspace 为 0.5。
使用 plt.subplots_adjust(hspace=0) 会将 hspace 调整为相同,但我希望它们不同。我们怎样才能做到这一点?

【问题讨论】:

    标签: python matplotlib


    【解决方案1】:

    hspace 参数全局作用于所有子图。要拥有不同的 hspace,您可以在两个底部图之间引入另一个不可见的图,并将其高度比调整为其他图的一半。

    import matplotlib.pyplot as plt
    
    fig, axes = plt.subplots(nrows=4,
                             gridspec_kw={"height_ratios" : [1,1,.5,1], "hspace":0})
    
    axes[0].tick_params(axis="x", bottom=False, labelbottom=False)
    axes[2].axis("off")
    
    plt.show()
    

    【讨论】:

    • 这正是我想要的!非常感谢!