如何使垂直堆叠对偶图的顶部图变小?

How to make the top graph of vertically stacked dual graph smaller?

我有一个图表,其中有 2 个图表堆叠在每个图表之上,以便进行直接比较。但是,当我在我的图表中添加一个颜色条时,它会使顶部图表比它下面的颜色图更宽,如下所示,但我希望顶部线图与下面的颜色图一样宽:

使用代码:

import numpy as np 
import matplotlib.pyplot as plt 



x = 20,40,60,80,100
y = 0,0,0,30,100

x1 = [[20, 20, 20, 20, 20], [40, 40, 40, 40, 40], [60, 60, 60, 60, 60], [80, 80, 80, 80, 80], [100, 100, 100, 100, 100]]
y1 = [[1000, 2000, 3000, 4000, 5000],[1000, 2000, 3000, 4000, 5000],[1000, 2000, 3000, 4000, 5000],[1000, 2000, 3000, 4000, 5000],[1000, 2000, 3000, 4000, 5000]]
z1 = [[0,0,0,0,0], [0,1,2,1,0], [0,1,2,1,0], [0,20,100,20,0], [0,40,200,40,0]]



gridspec_kw = dict(
    height_ratios=(1, 2),
    hspace=0,
)

fig, axes = plt.subplots(
    nrows=2, ncols=1, sharex=True, gridspec_kw=gridspec_kw,
)

axes[0].plot(x,y)
cs = axes[1].pcolor(x1, y1, z1, cmap='RdBu')
plt.colorbar(cs)
plt.show()

问题是颜色条在子图中占用了一些 space。您可以使用此 question 中的解决方案,并将 plt.colorbar(cs) 行替换为以下代码:

fig.subplots_adjust(right=0.8)
cbar_ax = fig.add_axes([0.85, 0.15, 0.05, 0.7])
fig.colorbar(cs, cax=cbar_ax)