python - Una barra de colores para mapas de calor marinos en subparcela
matplotlib heatmap (1)
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).
Aquí hay un ejemplo que muestra una barra de colores para cada subparcela:
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)
¿Cómo puedo eliminar las barras de colores de cada subparcela? 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 trama? No creo que haya una opción para optar por no dibujar la barra de colores cuando se llama heatmap.