Saltar al contenido principal

Mapas de calor Seaborn: Guía para la visualización de datos

Aprende a crear atractivos mapas térmicos Seaborn
Actualizado 5 nov 2024  · 9 min de lectura

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.

image4.png

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:

image1.png

¿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:

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 en True, el valor de cada celda se anota en el mapa de calor.
  • fmt: Cuando annot es True, 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 si linewidths 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 y vmax: 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 en True, garantiza que las celdas del mapa de calor tengan forma cuadrada.
  • xticklabels y yticklabels: 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()

image1.png

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()

image3.png

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()

image2.png

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 numpypara 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()

image5.png

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.


Photo of Joleen Bothma
Author
Joleen Bothma
LinkedIn
Temas

¡Comienza hoy tu viaje a Seaborn!

curso

Introduction to Data Visualization with Seaborn

4 hr
135.1K
Learn how to create informative and attractive visualizations in Python using the Seaborn library.
Ver detallesRight Arrow
Comienza El Curso
Ver másRight Arrow
Relacionado

tutorial

Tutorial de Python Seaborn Line Plot: Crear visualizaciones de datos

Descubra cómo utilizar Seaborn, una popular biblioteca de visualización de datos de Python, para crear y personalizar gráficos de líneas en Python.

tutorial

Python Seaborn Tutorial Para Principiantes: Empezar a visualizar datos

Este tutorial de Seaborn le introduce en los fundamentos de la visualización de datos estadísticos
Moez Ali's photo

Moez Ali

20 min

tutorial

Guía paso a paso para hacer mapas en Python usando la librería Plotly

Haz que tus datos destaquen con impresionantes mapas creados con Plotly en Python
Moez Ali's photo

Moez Ali

7 min

tutorial

Cómo crear un mapa térmico con Power BI

Comprende todos los entresijos de cómo crear mapas térmicos con Power BI y sus aplicaciones
Zoumana Keita 's photo

Zoumana Keita

9 min

tutorial

Tutorial de visualización de datos con Python y Tableau

Aprende a utilizar Python para ampliar las funciones de visualización de datos de Tableau.
Abid Ali Awan's photo

Abid Ali Awan

15 min

tutorial

Introducción al t-SNE

Aprende a visualizar datos de alta dimensión en un espacio de baja dimensión utilizando una técnica de reducción no lineal de la dimensionalidad.
Abid Ali Awan's photo

Abid Ali Awan

14 min

See MoreSee More