Matplotlib 如何根据表的高度调整pyplot中的子图的大小?

Matplotlib 如何根据表的高度调整pyplot中的子图的大小?,matplotlib,Matplotlib,matplotlib.pyplot中有许多方法可以更改子批的大小。然而,它们似乎都需要一些手动调整。我想做一个自动的方式,根据实际大小的绘图 在我的例子中,我想生成一大堆pdf文件,看起来像这样: 如您所见,顶部子图中的表格周围有大量空白,因此我想减小顶部子图的垂直尺寸,并将底部子图放大,以更好地填充空间 我知道我可以用GridSpec设置子地块的大小,还有一系列令人困惑的其他方法。然而,我的表中的行数会因文件而异,所以我事先不知道子图的大小 TL;DR:我希望第一个子地块与桌子一样高(不管多

matplotlib.pyplot中有许多方法可以更改子批的大小。然而,它们似乎都需要一些手动调整。我想做一个自动的方式,根据实际大小的绘图

在我的例子中,我想生成一大堆pdf文件,看起来像这样:

如您所见,顶部子图中的表格周围有大量空白,因此我想减小顶部子图的垂直尺寸,并将底部子图放大,以更好地填充空间

我知道我可以用
GridSpec
设置子地块的大小,还有一系列令人困惑的其他方法。然而,我的表中的行数会因文件而异,所以我事先不知道子图的大小


TL;DR:我希望第一个子地块与桌子一样高(不管多高),第二个子地块占用剩余空间。在MatPlotLib中是否可以这样做?

没有内置的方法来实现这一点,但如果表格具有get_Tightbox方法,则很可能可以获得边界框,并根据表格的边界框大小调整两个轴的位置。这有点复杂,因为你需要反转从像素到图形单位的变换来设置位置,但这并不太难。您可以查看源代码以了解紧凑布局或约束布局的想法。但是如果你只做了几次,建议用手来做。嗯,我认为这在
表格中是不可能的。如果更改工作台所在轴的大小,则工作台会更改大小,从而获得更多的空白。