curso
Mapas de calor Seaborn: Guía para la visualización de datos
Los mapas de calor son una popular técnica de visualización de datos que utiliza el color para representar diferentes niveles de magnitud de los datos, lo que te permite identificar rápidamente patrones y anomalías en tu conjunto de datos.
La biblioteca Seaborn te permite crear fácilmente visualizaciones altamente personalizadas de tus datos, como gráficos de líneas, histogramas y mapas de calor. También puedes consultar nuestro tutorial sobre los distintos tipos de gráficos de datos y cómo crearlos en Python.
Ten a mano nuestra hoja de trucos de Seaborn para tener una referencia rápida al trazar y personalizar visualizaciones de datos utilizando la biblioteca Seaborn.
En este tutorial, exploraremos qué son los mapas térmicos de Seaborn, cuándo utilizarlos y cómo crearlos y personalizarlos para que se adapten mejor a tus necesidades.
Entender los mapas de calor
¿Qué son los mapas térmicos?
Los mapas de calor organizan los datos en una cuadrícula, con diferentes colores o tonos que indican distintos niveles de magnitud de los datos.
La naturaleza visual de los mapas térmicos permite el reconocimiento inmediato de patrones, como agrupaciones, tendencias y anomalías. Esto hace que los mapas de calor sean una herramienta eficaz para el análisis exploratorio de datos.
Aquí tienes un ejemplo de mapa de calor Seaborn:
¿Cuándo debes utilizar mapas térmicos?
La elección de utilizar un mapa térmico depende de tus necesidades y de la naturaleza de tu conjunto de datos. En general, los mapas térmicos son más adecuados para conjuntos de datos en los que puedes representar los valores como colores, normalmente datos numéricos continuos o discretos. Sin embargo, también puedes utilizarlos para datos categóricos cuantificados o resumidos (por ejemplo, recuentos, medias).
Si el conjunto de datos contiene valores atípicos extremos o es muy disperso, un mapa térmico podría no ser tan eficaz sin preprocesamiento o normalización. El texto, las imágenes y otras formas de datos no estructurados tampoco son directamente adecuados para los mapas térmicos, a menos que primero transformes los datos en un formato estructurado y numérico.
Los mapas de calor son excelentes para visualizar la matriz de correlación entre múltiples variables, facilitando la identificación de variables altamente correlacionadas o inversamente correlacionadas de un vistazo.
Los mapas de calor también son útiles para comparar visualmente datos en dos dimensiones, como distintos periodos de tiempo o categorías. Para el análisis de datos geográficos, los mapas de calor pueden representar la densidad o intensidad de los acontecimientos en una disposición espacial, como la densidad de población o los focos de delincuencia de una ciudad.
Primeros pasos con los mapas de calor de Seaborn
Configurar tu entorno
Para este tutorial, utilizaremos un conjunto de datos que contiene información sobre préstamos disponible en DataLab, el cuaderno de datos con IA de DataCampf. El código de este tutorial también está disponible en el correspondiente libro de trabajo de DataLab.
En DataLab, las principales bibliotecas ya están convenientemente instaladas y listas para importar. Para saber más, tenemos un artículo sobre las mejores bibliotecas Python para la ciencia de datos.
Utilizaremos estas bibliotecas para este tutorial:
# Import libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
Si no estás familiarizado con Python y necesitas ponerte al día rápidamente para este tutorial, consulta nuestro curso Introducción a Python.
Alternativamente, si quieres aprender más sobre las bibliotecas que utilizaremos en este tutorial, puedes consultar estos cursos:
- Manipulación de datos con Pandas
- Introducción a NumPy
- Introducción a la visualización de datos con Matplotlib
Preparar tus datos
Asegúrate de que tus datos estén en formato de matriz, con filas y columnas que representen diferentes dimensiones (por ejemplo, periodos de tiempo, variables, categorías). Cada celda de la matriz debe contener el valor que quieras visualizar.
Limpieza de datos
Antes de utilizar un mapa térmico, debes realizar dos tareas principales de limpieza de datos: tratar los valores que faltan y eliminar los valores atípicos.
Al tratar con valores perdidos, puedes rellenarlos utilizando una medida estadística (media, mediana), interpolarlos o eliminarlos si no son significativos. En cuanto a los valores atípicos, según tu análisis, puedes eliminarlos o decidir ajustar sus valores.
En nuestro conjunto de datos de préstamos, no había valores perdidos, pero identificamos varios valores atípicos que decidimos eliminar. Consulta el cuaderno en DataLab para ver el código completo de cómo lo hicimos.
Normalización o escalado de datos
Si tu conjunto de datos abarca una amplia gama de valores, considera la posibilidad de escalarlo o normalizarlo. Esto puede permitir que los colores del mapa de calor representen las diferencias relativas con mayor precisión. Entre los métodos habituales están la escala mín-máx y la normalización de la puntuación Z.
Para los datos continuos que necesitan categorización, considera la discretización en intervalos o categorías para una visualización más significativa del mapa de calor.
Sintaxis y parámetros
Para utilizar seaborn.heatmap()
, normalmente necesitas pasar una matriz de datos. Después, puedes ajustar los parámetros para personalizar tus mapas térmicos en función de tus necesidades.
data
: El conjunto de datos a visualizar, que debe estar en forma de matriz.cmap
: Especifica el mapa de colores del mapa térmico. Seaborn admite varias paletas de colores, incluyendo esquemas secuenciales, divergentes y cualitativos.annot
: Si se establece enTrue
, el valor de cada celda se anota en el mapa de calor.fmt
: Cuando annot esTrue
,fmt
determina el código de formato de cadena para anotar los datos. Por ejemplo, 'd
' para números enteros y '.2f
' para números en coma flotante con dos decimales.linewidths
: Establece la anchura de las líneas que dividirán cada celda. Un valor mayor aumenta la separación entre celdas.linecolor
: Especifica el color de las líneas que dividen cada celda silinewidths
es mayor que 0.cbar
: Un valor booleano que indica si se dibuja una barra de color. La barra de colores proporciona una referencia para asignar valores de datos a colores.vmin
yvmax
: Estos parámetros definen el intervalo de datos que abarca el mapa de colores.center
: Establece el valor en el que centrar el mapa de color cuando se utilizan esquemas de color divergentes.square
: Si se establece enTrue
, garantiza que las celdas del mapa de calor tengan forma cuadrada.xticklabels
yyticklabels
: Controla las etiquetas mostradas en los ejes x e y.
Crear tu primer mapa de calor Seaborn
Crearemos un mapa de calor que muestre el coeficiente de correlación entre cada variable numérica de nuestros datos. Mantendremos el mapa de calor simple por ahora y lo personalizaremos más en la siguiente sección.
# Calculate the correlation matrix
correlation_matrix = filtered_df.corr()
# Create the heatmap
plt.figure(figsize = (10,8))
sns.heatmap(correlation_matrix, cmap = 'coolwarm')
plt.show()
Personalizar tu mapa de calor Seaborn
Personalización del color
Personalizar el color de tu mapa de calor facilita su lectura y da lugar a elementos visuales más llamativos en informes y presentaciones.
Seaborn y Matplotlib ofrecen una amplia gama de mapas de colores integrados. Experimenta con mapas de colores ('Blues
', 'coolwarm
', 'viridis
', etc.) para encontrar uno que resalte eficazmente la estructura y los patrones de tus datos. Utiliza mapas de colores secuenciales para datos con una ordenación natural de menor a mayor, mapas de colores divergentes para datos con un punto medio crítico y mapas de colores cualitativos para datos categóricos.
Sin embargo, no estás limitado a los mapas de colores y opciones por defecto que proporciona Seaborn. Puedes crear mapas de colores personalizados con Matplotlib y especificar opciones de personalización adicionales, como ajustar la transparencia.
Configurar vmin
y vmax
te permite controlar el rango de tus datos que cubre el mapa de colores. Esto puede mejorar el contraste y centrarse en determinadas gamas de interés.
Para mapas de colores divergentes, utiliza el parámetro center
para especificar el valor del punto medio. Esto garantiza que el contraste de color se ancla en torno a un valor crítico.
Ajustaremos la paleta de colores de nuestro mapa de calor y también anclaremos los colores especificando los valores mínimo, máximo y central.
# Customize heatmap colors
plt.figure(figsize = (10,8))
sns.heatmap(correlation_matrix, cmap = 'viridis', vmin = -1, vmax = 1, center = 0)
plt.show()
Anotación de datos
La anotación de datos consiste en añadir etiquetas dentro de cada celda, que pueden mostrar valores numéricos o algún texto. Las anotaciones facilitan la lectura e interpretación rápida de los mapas térmicos, sin tener que averiguar los valores basándote en la leyenda.
Para activar las anotaciones, establece el parámetro annot
en True
. Esto mostrará los valores de los datos en cada celda del mapa de calor.
El parámetro fmt
te permite dar formato al texto de las anotaciones. Por ejemplo, utiliza 'd
' para formatear números enteros y '.2f
' para números en coma flotante mostrados con dos decimales.
Aunque la función de mapa de calor de Seaborn no permite directamente personalizar las propiedades del texto, como el tamaño de la fuente, a través del parámetro annot
, puedes ajustar estas propiedades globalmente utilizando la función rcParams
de Matplotlib.
# Create an annotated heatmap
plt.figure(figsize = (10,8))
plt.rcParams.update({'font.size': 12})
sns.heatmap(correlation_matrix, cmap = 'viridis', vmin = -1, vmax = 1, center = 0, annot=True, fmt=".2f", square=True, linewidths=.5)
plt.show()
El parámetro annot
también puede aceptar una estructura tipo array con la misma forma que tus datos. Se trata de un truco muy útil que te permite añadir anotaciones que contengan información distinta de la que muestran los colores de las celdas. Aquí tienes un ejemplo de cómo podrías aplicarlo:
# Example of alternative annotations
annot_array = np.round(data*100, decimals=2)
sns.heatmap(data, annot=annot_array, fmt='s')
Enmascaramiento de datos
El enmascaramiento de datos es una técnica utilizada para resaltar u ocultar selectivamente determinados puntos de datos basándose en condiciones específicas. Esto puede ayudar a centrar la atención en determinadas áreas de interés o patrones dentro del conjunto de datos.
En primer lugar, tienes que crear una máscara booleana con la misma forma que tu matriz de datos. La máscara debe ser True
(o False
) para los puntos de datos que quieras ocultar (o mostrar). Como la matriz de correlaciones es simétrica, podemos utilizar la función triu
de numpy
para crear una máscara triangular que cubra sólo la parte superior de nuestro mapa de calor.
# Create a mask using numpy's triu function
mask = np.triu(np.ones_like(correlation_matrix, dtype=bool))
Utiliza el parámetro mask
de la función seaborn.heatmap()
para aplicar tu máscara. Se ocultarán los puntos de datos correspondientes a True
en la máscara.
# Create a masked heatmap
plt.figure(figsize = (10,8))
plt.rcParams.update({'font.size': 12})
sns.heatmap(correlation_matrix, cmap = 'viridis', vmin = -1, vmax = 1, center = 0, annot=True, fmt=".2f", square=True, linewidths=.5, mask = mask)
plt.show()
Buenas prácticas y errores comunes
Si sigues estas prácticas recomendadas, podrás utilizar los mapas de calor de Seaborn para crear visualizaciones llamativas para tus informes y presentaciones.
Aquí tienes cinco buenas prácticas que debes tener en cuenta al utilizar los mapas térmicos de Seaborn:
1. Elige la paleta de colores adecuada
La paleta de colores que elijas afecta directamente a cómo se perciben tus datos. Diferentes esquemas de color pueden resaltar u ocultar patrones dentro de tus datos.
Utiliza paletas de colores secuenciales para los datos que progresan de bajo a alto y paletas de colores divergentes para los datos con un punto medio significativo. Seaborn proporciona varias opciones con el parámetro cmap
, que te permiten adaptar el esquema de colores a tu conjunto de datos.
2. Trata con cuidado los datos que faltan
Los datos que faltan pueden introducir lagunas en tu mapa de calor, pudiendo inducir a error al espectador.
Antes de trazar, decide una estrategia para tratar los datos que faltan. En función de su importancia, puedes optar por imputar los valores perdidos o eliminarlos por completo.
Alternativamente, representar los datos que faltan con un color o patrón distinto puede resaltar su presencia sin confundir al espectador.
3. Escala adecuadamente tus datos
Los datos con grandes varianzas o valores atípicos pueden sesgar la visualización, dificultando la determinación de si los datos contienen algún patrón.
Normaliza o escala tus datos para asegurarte de que el mapa de calor refleja con precisión las diferencias en el conjunto de datos. Según la naturaleza de tus datos, pueden ser beneficiosas técnicas como el escalado mín-máx, la normalización de la puntuación Z o incluso las transformaciones logarítmicas.
4. Utiliza las anotaciones con moderación
Aunque las anotaciones pueden añadir detalles valiosos al mostrar valores exactos, saturar tu mapa de calor con anotaciones puede dificultar su lectura, especialmente en el caso de grandes conjuntos de datos.
Limita las anotaciones a los puntos de datos clave o utilízalas en mapas térmicos más pequeños.
5. Ajustar las dimensiones del mapa térmico
Es posible que la relación de aspecto y el tamaño predeterminados no se adapten a tu conjunto de datos, dando lugar a celdas aplastadas o a una visualización estrecha que oscurece los patrones.
Personaliza el tamaño y la relación de aspecto de tu mapa térmico para garantizar que cada celda sea claramente visible y que el patrón general sea fácil de discernir.
Conclusión
La función de mapa de calor de Seaborn permite visualizaciones llamativas de patrones de datos y es especialmente útil para visualizar correlaciones entre variables numéricas.
Sin embargo, es importante seguir las mejores prácticas. Por ejemplo, elegir la paleta de colores adecuada, tratar cuidadosamente los datos que faltan, escalar correctamente los datos, utilizar las anotaciones con moderación y ajustar las dimensiones de los mapas térmicos.
¿Te interesa sumergirte en la biblioteca Seaborn? Nuestro curso Introducción a la visualización de datos con Seaborn es ideal para principiantes, o si eres un usuario más avanzado, puedes profundizar tus conocimientos con nuestro curso Visualización de datos intermedia con Seaborn.
¡Comienza hoy tu viaje a Seaborn!
curso
Intermediate Data Visualization with Seaborn
curso
Exploratory Data Analysis in Python
tutorial
Tutorial de Python Seaborn Line Plot: Crear visualizaciones de datos
tutorial
Python Seaborn Tutorial Para Principiantes: Empezar a visualizar datos
tutorial
Guía paso a paso para hacer mapas en Python usando la librería Plotly
tutorial
Cómo crear un mapa térmico con Power BI
tutorial
Tutorial de visualización de datos con Python y Tableau
tutorial