Carte Thermique
Une carte thermique est une méthode de visualisation de données bidimensionnelles utilisant des couleurs pour représenter l'intensité de chaque valeur.
Cet exemple utilise une carte thermique pour représenter les corrélations par paires entre les variables d'un ensemble de données.
Création d'une carte thermique simple
seaborn
possède une fonction appelée heatmap()
. Son seul paramètre obligatoire est data
, qui doit être un ensemble de données 2D (rectangulaire).
L'utilisation la plus courante d'une carte thermique concerne une matrice de corrélation comme dans l'exemple ci-dessus. Étant donné un DataFrame
, il convient d'appeler d'abord sa méthode corr()
pour obtenir une matrice de corrélation, puis de passer cette matrice en argument à la fonction heatmap()
:
Un cas d'utilisation fréquent d'une carte thermique est l'affichage d'une matrice de corrélation. Étant donné un DataFrame
, appeler d'abord sa méthode corr()
pour obtenir la matrice de corrélation, puis passer cette matrice en argument à la fonction heatmap()
.
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://staging-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 matrice de corrélation a été créée en utilisant uniquement les colonnes numériques du DataFrame
. Les colonnes contenant des chaînes de caractères ont été exclues en définissant numeric_only=True
.
Annotation et couleurs
Cette carte thermique peut être rendue plus informative en affichant la valeur appropriée (coefficient de corrélation dans notre cas) dans chaque cellule. Cela peut être réalisé simplement en définissant le paramètre annot
sur True
.
Il est également possible de modifier les couleurs de notre carte thermique en définissant le paramètre cmap
(vous pouvez l'explorer dans l'article "Choisir des palettes de couleurs").
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://staging-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 barre de couleur à droite peut être supprimée en définissant cbar=False
.
Dans la plupart des cas, cela couvrira l'essentiel de la personnalisation de la carte thermique. Cependant, il est toujours possible d'explorer davantage dans la documentation de heatmap()
.
Amélioration de la lisibilité
L'élément final permettant d'améliorer la lisibilité de notre carte thermique consiste à faire pivoter les graduations à l'aide des fonctions déjà connues xticks()
et yticks()
:
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # Loading the dataset with the countries data url = 'https://staging-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
- Utiliser la méthode appropriée pour créer une matrice de corrélation.
- Définir l'argument de la méthode pour inclure uniquement les variables numériques.
- Utiliser la fonction appropriée pour créer une carte thermique (heatmap).
- Définir
correlation_matrix
comme données pour la carte thermique en le spécifiant comme premier argument. - Ajouter les valeurs dans chaque cellule de la matrice en spécifiant le second argument.
- Définir la palette (carte de couleurs) de la carte thermique sur
'crest'
en la spécifiant comme troisième (dernier) argument. - Faire pivoter les graduations des axes x et y de 15 degrés dans le sens antihoraire en spécifiant un argument clé dans
xticks()
etyticks()
.
Solution
Merci pour vos commentaires !