python 3.x – Proporciones height_ratio con gridspec

Estaba interesado en cambiar las dimensiones de un plot usando el modulo gridspec de matplotlib. El siguiente codigo muestra 3 plots. Los dos primeros (rojo y azul) estan anidados debido a gs1, y el tercero “libre” como gs2.
Se que con plt.subplots_adjust(hspace=0.0) puedo cambiar la distancia entre los dos primero plots a 0.
Sin embargo, me gustaria cambiar el ratio entre ellos. Por ejemplo, que el plot2 (azul) tenga una altura de 0.25 respecto al Plot1 (rojo), manteniendo la distancia entre ellos = 0, y una distancia de por ejemplo 0.3 con el Plot3 (verde). Intuyo que tiene que estar relacionado con plt.subplots_adjust pero no consigo obtenerla figura deseada.
introducir la descripción de la imagen aquí

import matplotlib.pyplot as plt
from matplotlib import gridspec
import numpy as np


t  = np.arange(50)
y1 = np.random.randint(0, 10, 50)
y2 = np.random.randint(0, 10, 50)
y3 = np.random.randint(0, 20, 50)

gs_gen = gridspec.GridSpec(2, 1, height_ratios=(1, 1), hspace=0.3) 
gs1 = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec=gs_gen(0))
gs2 = gridspec.GridSpecFromSubplotSpec(1, 1, subplot_spec=gs_gen(1))

fig=plt.figure()
ax1 = plt.subplot(gs1(0, 0))
ax2 = plt.subplot(gs1(1, 0), sharex=ax1)
ax3 = plt.subplot(gs2(0, 0))

ax1.plot(t, y1, color='red', label='Plot1')
ax1.grid(True)
ax1.set_xlabel('tiempo (s)')
ax1.set_ylabel('ax1')
ax1.legend(loc='best')
ax1.tick_params(axis='x', which='both', labelbottom=False)

ax2.plot(t, y2, color='blue', label='Plot2')
ax2.grid(True)
ax2.set_xlabel('tiempo (s)')
ax2.set_ylabel('ax2')
ax2.legend(loc='best')
ax2.tick_params(axis='x', which='both', labelbottom=True)

ax3.plot(t, y3, color = 'green', label='Plot3')
ax3.grid(True)
ax3.set_xlabel('tiempo (s)')
ax3.set_ylabel('ax3')
ax3.legend(loc='best')

plt.subplots_adjust(hspace=0.0)
plt.show()

Alguna idea de como llevar a cabo esta accion ya sea con gridspec o subplots?.
Muchas gracias de antemano.