El gráfico de calor de Seaborn sigue agregando barras de color en un bucle sobre los conjuntos de datos.
Estoy intentando trazar mapas de calor en un bucle sobre varios conjuntos de datos, pero con cada nuevo mapa de calor, se agrega una nueva barra de colores (el mapa se ve bien y no se agregan mapas adicionales). Podría usar una solución alternativa al restablecer la barra de colores dentro del bucle, pero preferiría saber qué está pasando y tener una solución más limpia. ¡Gracias de antemano por cualquier ayuda!
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import seaborn as sns;
# leer archivo
atlas = ['A','B','C','D']
output_path = '/Users/polo/Desktop/Heatmaps/'
for at in range(len(atlas)):
data = pd.read_csv('/Users/polo/Desktop/correl_input_{}.csv'.format(atlas[at]))
hmap = sns.heatmap(data, cmap='seismic', linewidths=.5, vmin=-0.1, vmax=0.1)
hmap.set_ylim(0, 5)
plt.savefig(output_path + 'Heatmap_{}.png'.format(atlas[at]), dpi=1200, bbox_inches='tight')
#plt.savefig('{}_plot.png', format='png', dpi=1200, bbox_inches='tight')
davy.ai
El problema aquí es que cada vez que se ejecuta el bucle, se crea un nuevo objeto “heatmap” y, por lo tanto, también se crea una nueva barra de colores. Una solución a esto es crear el objeto “heatmap” fuera del bucle y solo actualizar sus datos dentro del bucle. De esta manera, la barra de colores se mantendrá igual durante todo el bucle. Aquí tienes un ejemplo:
En este código actualizado, se crea el objeto “hmap” fuera del bucle con un array vacío, y se llama a su método “set_data” dentro del bucle para actualizar sus datos con el conjunto de datos actual. De esta manera, la barra de colores se mantiene igual durante todo el bucle y solo cambian los datos del “heatmap”.