Una barra de colores para mapas de calor marinos en subplot

Aquí hay un ejemplo que muestra una barra de colores para cada subplot:

import seaborn as sns import matplotlib.pyplot as plt import pandas as pd import numpy as np df = pd.DataFrame(np.random.random((10,10,))) fig,axn = plt.subplots(2, 2, sharex=True, sharey=True) for ax in axn.flat: sns.heatmap(df, ax=ax) 

introduzca la descripción de la imagen aquí

¿Cómo puedo eliminar las barras de colores de cada subplot? Me gustaría tener solo una barra de color que esté orientada vertical u horizontalmente. Sé que tengo acceso a los ejes de cada barra de color a través de fig.get_axes()[:-4] , pero ¿cómo puedo eliminarlos completamente de la ttwig? No creo que haya una opción para optar por no dibujar la barra de colores cuando se llama heatmap.

El parámetro cbar controla si se debe agregar una barra de colores, y el parámetro cbar_ax puede especificar opcionalmente los ejes donde debe ir la barra de colores. Entonces, podrías hacer:

 import seaborn as sns import matplotlib.pyplot as plt import pandas as pd import numpy as np df = pd.DataFrame(np.random.random((10,10,))) fig, axn = plt.subplots(2, 2, sharex=True, sharey=True) cbar_ax = fig.add_axes([.91, .3, .03, .4]) for i, ax in enumerate(axn.flat): sns.heatmap(df, ax=ax, cbar=i == 0, vmin=0, vmax=1, cbar_ax=None if i else cbar_ax) fig.tight_layout(rect=[0, 0, .9, 1]) 

(Recibirá una advertencia sobre tight_layout aquí, pero en realidad es correcta porque colocamos cbar_ax explícitamente. Si no le gusta ver la advertencia, también puede llamar a tight_layout antes de trazar, pero no será tan estricto).