Cómo trazar la barra de colores de pcolor en una subplot diferente – matplotlib

Estoy tratando de dividir mis plots en diferentes subplots … Lo que quiero lograr es poner una barra de colores para una subplot en un subplot diferente. Ahora mismo estoy usando:

# first graph axes = plt.subplot2grid((4, 2), (0, 0), rowspan=3) pc = plt.pcolor(df1, cmap='jet') # second graph axes = plt.subplot2grid((4, 2), (3, 0)) plt.pcolor(df2, cmap='Greys') # colorbar plt.subplot2grid((4, 2), (0, 1), rowspan=3) plt.colorbar(pc) 

Pero el resultado es el siguiente (observe el gráfico vacío no deseado que se deja en la barra de colores): Grafo incorrecto

¿Qué puedo hacer para imprimir solo la barra de colores sin el gráfico de la izquierda?

Gracias

    colorbar() acepta un argumento de palabra clave cax que le permite especificar el objeto de los axes que se dibujará la barra de colores.

    En su caso, cambiaría su llamada de la barra de colores a la siguiente:

     # colorbar axes = plt.subplot2grid((4, 2), (0, 1), rowspan=3) plt.colorbar(pc, cax=axes) 

    Esto ocupará todo el espacio dado por subplot2grid ; puede ajustar esto para que sea más razonable, ya sea haciendo que los ejes principales ocupen muchas más columnas que los ejes de la barra de colores, o configurando explícitamente el gridspec . Por ejemplo, su figura puede ser más fácil de ajustar con lo siguiente:

     from matplotlib import gridspec gs = gridspec.GridSpec(2, 2, height_ratios=(3, 1), width_ratios=(9, 1)) # first graph axes = plt.subplot(gs[0,0]) pc = plt.pcolor(df1, cmap='jet') # second graph axes = plt.subplot(gs[1,0]) plt.pcolor(df2, cmap='Greys') # colorbar axes = plt.subplot(gs[0,1]) plt.colorbar(pc, cax=axes) 

    Entonces solo puedes cambiar height_ratios y width_ratios a tu gusto.

    Creo que deberías usar hacha en lugar de cax .

     # colorbar axes = plt.subplot2grid((4, 2), (0, 1), rowspan=3) plt.colorbar(pc, ax=axes)