Mapa de Calor
Un mapa de calor es un método para visualizar datos bidimensionales utilizando colores para representar la magnitud de cada valor.
Este ejemplo utiliza un mapa de calor para representar las correlaciones por pares entre variables en un conjunto de datos.
Creación de un Mapa de Calor Simple
seaborn
dispone de una función llamada heatmap()
. Su único parámetro obligatorio es data
, que debe ser un conjunto de datos 2D (rectangular).
Quizás el caso de uso más común de un mapa de calor es con una matriz de correlación como en el ejemplo anterior. Dado un DataFrame
, primero se debe llamar a su método corr()
para obtener una matriz de correlación y solo entonces pasar esta matriz como argumento para la función heatmap()
:
Un caso de uso común para un mapa de calor es mostrar una matriz de correlación. Dado un DataFrame
, primero llame a su método corr()
para obtener la matriz de correlación y luego pase esta matriz como argumento a la función heatmap()
.
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/countries_data.csv' countries_df = pd.read_csv(url, index_col=0) # Creating a correlation matrix with all numeric variables correlation_matrix = countries_df.corr(numeric_only=True) # Creating a heatmap based on the correlation matrix sns.heatmap(correlation_matrix) plt.show()
La matriz de correlación se creó utilizando únicamente las columnas numéricas del DataFrame
. Las columnas que contienen cadenas de texto fueron excluidas al establecer numeric_only=True
.
Anotaciones y colores
Este mapa de calor puede hacerse más informativo mostrando el valor correspondiente (coeficiente de correlación en este caso) en cada celda. Esto se logra simplemente configurando el parámetro annot
en True
.
También es posible cambiar los colores de nuestro mapa de calor configurando el parámetro cmap
(puede explorarlo en el artículo "Choosing color palettes").
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/countries_data.csv' countries_df = pd.read_csv(url, index_col=0) # Creating a correlation matrix with all numeric variables correlation_matrix = countries_df.corr(numeric_only=True) # Setting annotation and color palette sns.heatmap(correlation_matrix, annot=True, cmap='viridis') plt.show()
La barra de color a la derecha puede eliminarse configurando cbar=False
.
En la mayoría de los casos, esto es todo lo que necesitarás para la personalización de un mapa de calor; sin embargo, siempre puedes explorar más en la documentación de heatmap()
.
Mejora de la legibilidad
El último aspecto que mejoraría la legibilidad de nuestro mapa de calor es rotar las etiquetas utilizando las funciones xticks()
y yticks()
que ya conocemos:
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://content-media-cdn.codefinity.com/courses/47339f29-4722-4e72-a0d4-6112c70ff738/countries_data.csv' countries_df = pd.read_csv(url, index_col=0) # Creating a correlation matrix with all numeric variables correlation_matrix = countries_df.corr(numeric_only=True) # Creating a heatmap based on the correlation matrix sns.heatmap(correlation_matrix, annot=True, cmap='viridis') # Rotating the ticks by 20 degrees counterclockwise plt.xticks(rotation=20) plt.yticks(rotation=20) plt.show()
Swipe to start coding
- Utilizar el método correcto para crear una matriz de correlación.
- Establecer el argumento del método para incluir solo variables numéricas.
- Utilizar la función adecuada para crear un mapa de calor.
- Definir
correlation_matrix
como los datos para el mapa de calor especificando el primer argumento. - Añadir los valores en cada celda de la matriz especificando el segundo argumento.
- Establecer la paleta (mapa de colores) del mapa de calor en
'crest'
especificando el tercer (último) argumento. - Rotar las etiquetas de los ejes x e y 15 grados en sentido antihorario especificando un argumento de palabra clave en
xticks()
yyticks()
.
Solución
¡Gracias por tus comentarios!