Espaciado entre algunas subplots pero no todas

Tengo un gráfico de matplotlib en python con 3 subplots, todo en 1 columna.

Actualmente controlo la altura de cada subttwig con:

gridspec.GridSpec(3, 1, height_ratios=[1, 3, 3]) 

No tengo ningún espacio a través de:

 plt.subplots_adjust(hspace=0.0) 

Pero me gustaría poner un poco de espacio entre las filas 2 y 3 solamente.

En una de las otras respuestas, leí que puedo hacer algo como:

 gs1.update(left=0.05, right=0.48, wspace=0) 

Pero realmente no entiendo lo que está pasando. ¿Podría alguien darme más información por favor?

Cuando llama a la actualización, está aplicando esos parámetros a todas las subplots en esa gridpec particular. Si desea usar diferentes parámetros para diferentes subplots, puede hacer múltiples gridspecs. Sin embargo, deberá asegurarse de que tengan el tamaño correcto y no se superpongan. Una forma de hacerlo es con gridspecs nesteds. Dado que la altura total de las dos plots inferiores es 6 veces la superior, la grilla externa tendrá una relación de altura de [1, 6].

 import matplotlib.pyplot as plt import matplotlib.gridspec as gridspec def do_stuff(cell): #just so the plots show up ax = plt.subplot(cell) ax.plot() ax.get_xaxis().set_visible(False) ax.get_yaxis().set_visible(False) plt.subplots_adjust(hspace=0.0) #make outer gridspec outer = gridspec.GridSpec(2, 1, height_ratios = [1, 6]) #make nested gridspecs gs1 = gridspec.GridSpecFromSubplotSpec(1, 1, subplot_spec = outer[0]) gs2 = gridspec.GridSpecFromSubplotSpec(2, 1, subplot_spec = outer[1], hspace = .05) for cell in gs1: do_stuff(cell) for cell in gs2: do_stuff(cell) plt.show() 

Parcela con tres subparcelas.

En este caso particular, probablemente sea más rápido simplemente agregar un objeto de ejes invisible entre las filas 2 y 3:

 import matplotlib.pyplot as plt gridspec = dict(hspace=0.0, height_ratios=[1, 1, 0.4, 3]) fig, axs = plt.subplots(nrows=4, ncols=1, gridspec_kw=gridspec) axs[2].set_visible(False) 

Revisé la documentación y parece que el espaciado de cuadrícula variable no es compatible. Así que tenemos que conformarnos con soluciones como esta.

subparcelas