cours
Cartes thermiques de Seaborn : Guide de la visualisation des données
Les cartes thermiques sont une technique populaire de visualisation des données qui utilise la couleur pour représenter différents niveaux d'ampleur des données, ce qui vous permet d'identifier rapidement des modèles et des anomalies dans votre ensemble de données.
La bibliothèque Seaborn vous permet de créer facilement des visualisations hautement personnalisées de vos données, telles que des tracés linéaires, des histogrammes et des cartes thermiques. Vous pouvez également consulter notre tutoriel sur les différents types de tracés de données et la manière de les créer en Python.
Gardez à portée de main notre aide-mémoire Seaborn pour une référence rapide lorsque vous tracez et personnalisez des visualisations de données à l'aide de la bibliothèque Seaborn.
Dans ce tutoriel, nous verrons ce que sont les cartes thermiques Seaborn, quand les utiliser et comment les créer et les personnaliser pour qu'elles répondent au mieux à vos besoins.
Comprendre les cartes thermiques
Qu'est-ce qu'une carte thermique ?
Les cartes thermiques organisent les données dans une grille dont les différentes couleurs ou nuances indiquent les différents niveaux d'importance des données.
La nature visuelle des cartes thermiques permet une reconnaissance immédiate des modèles, tels que les grappes, les tendances et les anomalies. Cela fait des cartes thermiques un outil efficace pour l'analyse exploratoire des données.
Voici un exemple de carte thermique Seaborn :
Quand utiliser les cartes thermiques ?
Le choix d'utiliser une carte thermique dépend de vos besoins et de la nature de votre ensemble de données. En général, les cartes thermiques conviennent mieux aux ensembles de données où vous pouvez représenter les valeurs sous forme de couleurs, typiquement des données numériques continues ou discrètes. Cependant, vous pouvez également les utiliser pour des données catégorielles qui ont été quantifiées ou résumées (par exemple, comptages, moyennes).
Si l'ensemble de données contient des valeurs aberrantes extrêmes ou est très clairsemé, une carte thermique peut ne pas être aussi efficace sans prétraitement ou normalisation. Le texte, les images et les autres formes de données non structurées ne conviennent pas non plus directement aux cartes thermiques, à moins que vous ne transformiez d'abord les données en un format numérique structuré.
Les cartes thermiques permettent de visualiser la matrice de corrélation entre plusieurs variables, ce qui facilite l'identification des variables fortement corrélées ou inversement corrélées en un coup d'œil.
Les cartes thermiques sont également utiles pour comparer visuellement des données sur deux dimensions, telles que des périodes ou des catégories différentes. Pour l'analyse de données géographiques, les cartes thermiques peuvent représenter la densité ou l'intensité d'événements dans un espace donné, comme la densité de la population ou les points chauds de la criminalité dans une ville.
Premiers pas avec les cartes thermiques Seaborn
Mise en place de votre environnement
Pour ce tutoriel, nous utiliserons un ensemble de données contenant des informations sur les prêts disponibles sur DataLab, le bloc-notes de données basé sur l'IA de DataCampf. Le code de ce tutoriel est également disponible dans un classeur DataLab correspondant.
Dans DataLab, toutes les principales bibliothèques sont déjà installées et prêtes à être importées. Pour en savoir plus, nous vous proposons un article sur les meilleures bibliothèques Python pour la science des données.
Nous utiliserons ces bibliothèques pour ce tutoriel :
# Import libraries
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
Si vous n'êtes pas familier avec Python et que vous avez besoin de vous mettre rapidement à niveau pour ce tutoriel, consultez notre cours d'introduction à Python.
Si vous souhaitez en savoir plus sur les bibliothèques que nous utiliserons dans ce tutoriel, vous pouvez consulter ces cours :
- Manipulation de données avec Pandas
- Introduction à NumPy
- Introduction à la visualisation de données avec Matplotlib
Préparer vos données
Veillez à ce que vos données soient présentées sous forme de matrice, avec des lignes et des colonnes représentant différentes dimensions (par exemple, périodes de temps, variables, catégories). Chaque cellule de la matrice doit contenir la valeur que vous souhaitez visualiser.
Nettoyage des données
Avant d'utiliser une carte thermique, vous devez effectuer deux tâches principales de nettoyage des données : traiter les valeurs manquantes et supprimer les valeurs aberrantes.
Lorsque vous traitez des valeurs manquantes, vous pouvez les compléter à l'aide d'une mesure statistique (moyenne, médiane), les interpoler ou les supprimer si elles ne sont pas significatives. Quant aux valeurs aberrantes, en fonction de votre analyse, vous pouvez les supprimer ou décider d'ajuster leurs valeurs.
Dans notre ensemble de données sur les prêts, il n'y avait pas de valeurs manquantes, mais nous avons identifié plusieurs valeurs aberrantes que nous avons décidé de supprimer. Consultez le carnet de notes sur DataLab pour obtenir le code complet sur la façon dont nous avons procédé.
Normalisation ou mise à l'échelle des données
Si votre ensemble de données couvre une large gamme de valeurs, envisagez de le mettre à l'échelle ou de le normaliser. Cela peut permettre aux couleurs de la carte thermique de représenter les différences relatives avec plus de précision. Les méthodes les plus courantes sont la mise à l'échelle min-max et la normalisation du score Z.
Pour les données continues qui nécessitent une catégorisation, envisagez une discrétisation en bacs ou en catégories pour une visualisation plus significative de la carte thermique.
Syntaxe et paramètres
Pour utiliser seaborn.heatmap()
, vous devez généralement transmettre une matrice de données. Vous pouvez ensuite ajuster les paramètres pour personnaliser vos cartes thermiques en fonction de vos besoins.
data
: L'ensemble de données à visualiser, qui doit être sous forme de matrice.cmap
: Spécifie la carte des couleurs pour la carte thermique. Seaborn prend en charge différentes palettes de couleurs, y compris des schémas séquentiels, divergents et qualitatifs.annot
: Si la valeur est fixée àTrue
, la valeur de chaque cellule est annotée sur la carte thermique.fmt
: Lorsque annot estTrue
,fmt
détermine le code de formatage de la chaîne pour l'annotation des données. Par exemple, "d
" pour les nombres entiers et ".2f
" pour les nombres à virgule flottante avec deux décimales.linewidths
: Définit la largeur des lignes qui diviseront chaque cellule. Une valeur plus élevée augmente la séparation entre les cellules.linecolor
: Spécifie la couleur des lignes qui divisent chaque cellule silinewidths
est supérieur à 0.cbar
: Valeur booléenne indiquant s'il faut dessiner une barre de couleur. La barre de couleur fournit une référence pour la mise en correspondance des valeurs de données avec les couleurs.vmin
etvmax
: Ces paramètres définissent la plage de données couverte par la carte des couleurs.center
: Définit la valeur à laquelle centrer la carte des couleurs lors de l'utilisation de schémas de couleurs divergents.square
: S'il est défini surTrue
, il garantit que les cellules de la carte thermique sont de forme carrée.xticklabels
etyticklabels
: Contrôlez les étiquettes affichées sur les axes x et y.
Créer votre première carte thermique Seaborn
Nous allons créer une carte thermique montrant le coefficient de corrélation entre chaque variable numérique de nos données. Pour l'instant, nous nous contenterons d'une carte thermique simple, que nous personnaliserons davantage dans la section suivante.
# 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()
Personnaliser votre carte thermique Seaborn
Personnalisation des couleurs
La personnalisation de la couleur de votre carte thermique facilite la lecture et permet d'obtenir des images plus attrayantes dans les rapports et les présentations.
Seaborn et Matplotlib offrent une large gamme de cartes de couleurs intégrées. Expérimentez les cartes de couleurs ('Blues
', 'coolwarm
', 'viridis
', etc.) pour trouver celle qui met le mieux en évidence la structure et les schémas de vos données. Utilisez des cartes de couleurs séquentielles pour les données dont l'ordre naturel va de bas en haut, des cartes de couleurs divergentes pour les données dont le point médian est critique, et des cartes de couleurs qualitatives pour les données catégorielles.
Cependant, vous n'êtes pas limité aux cartes de couleurs et aux options par défaut fournies avec Seaborn. Vous pouvez créer des cartes de couleurs personnalisées à l'aide de Matplotlib et spécifier des options de personnalisation supplémentaires telles que l'ajustement de la transparence.
Les paramètres vmin
et vmax
vous permettent de contrôler la plage de vos données couverte par la carte des couleurs. Cela permet d'améliorer le contraste et de mettre l'accent sur des domaines d'intérêt particuliers.
Pour les cartes de couleurs divergentes, utilisez le paramètre center
pour spécifier la valeur du point médian. Cela permet d'ancrer le contraste des couleurs autour d'une valeur critique.
Nous allons ajuster la palette de couleurs de notre carte thermique et ancrer les couleurs en spécifiant les valeurs min, max et centrale.
# Customize heatmap colors
plt.figure(figsize = (10,8))
sns.heatmap(correlation_matrix, cmap = 'viridis', vmin = -1, vmax = 1, center = 0)
plt.show()
Annotation des données
L'annotation des données consiste à ajouter des étiquettes dans chaque cellule, qui peuvent afficher des valeurs numériques ou du texte. Les annotations facilitent la lecture et l'interprétation rapide des cartes thermiques sans qu'il soit nécessaire de calculer les valeurs à partir de la légende.
Pour activer les annotations, réglez le paramètre annot
sur True
. Cela permet d'afficher les valeurs des données dans chaque cellule de la carte thermique.
Le paramètre fmt
vous permet de formater le texte des annotations. Par exemple, utilisez 'd
' pour le formatage des nombres entiers et '.2f
' pour les nombres à virgule flottante affichés avec deux décimales.
Bien que la fonction heatmap de Seaborn ne permette pas directement de personnaliser les propriétés du texte, comme la taille de la police, par le biais du paramètre annot
, vous pouvez ajuster ces propriétés globalement en utilisant la fonction 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()
Le paramètre annot
peut également accepter une structure de type tableau de la même forme que vos données. Il s'agit d'une astuce intéressante qui vous permet d'ajouter des annotations contenant des informations différentes de celles affichées par les couleurs des cellules. Voici un exemple de la manière dont vous pouvez appliquer ce principe :
# Example of alternative annotations
annot_array = np.round(data*100, decimals=2)
sns.heatmap(data, annot=annot_array, fmt='s')
Masquage des données
Le masquage des données est une technique utilisée pour mettre en évidence ou masquer de manière sélective certains points de données en fonction de conditions spécifiques. Cela permet d'attirer l'attention sur des domaines d'intérêt particuliers ou sur des modèles au sein de l'ensemble de données.
Tout d'abord, vous devez créer un masque booléen ayant la même forme que votre matrice de données. Le masque doit être True
(ou False
) pour les points de données que vous souhaitez masquer (ou afficher). La matrice de corrélation étant symétrique, nous pouvons utiliser la fonction triu
de numpy
pour créer un masque triangulaire qui ne couvre que la partie supérieure de notre carte thermique.
# Create a mask using numpy's triu function
mask = np.triu(np.ones_like(correlation_matrix, dtype=bool))
Utilisez le paramètre mask
de la fonction seaborn.heatmap()
pour appliquer votre masque. Les points de données correspondant à True
dans le masque seront masqués.
# 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()
Bonnes pratiques et erreurs courantes
Le respect de ces bonnes pratiques vous permettra d'utiliser les cartes thermiques Seaborn pour créer des visualisations attrayantes pour vos rapports et présentations.
Voici cinq bonnes pratiques à prendre en compte lors de l'utilisation des cartes thermiques Seaborn :
1. Choisissez la bonne palette de couleurs
La palette de couleurs que vous choisissez influe directement sur la manière dont vos données sont perçues. Différentes combinaisons de couleurs peuvent mettre en évidence ou masquer des schémas dans vos données.
Utilisez des palettes de couleurs séquentielles pour les données qui vont du plus bas au plus haut et des palettes de couleurs divergentes pour les données dont le point médian est significatif. Seaborn propose plusieurs options avec le paramètre cmap
, ce qui vous permet d'adapter la palette de couleurs à votre jeu de données.
2. Traiter les données manquantes de manière réfléchie
Les données manquantes peuvent introduire des lacunes dans votre carte thermique, ce qui risque d'induire l'observateur en erreur.
Avant de tracer le graphique, décidez d'une stratégie pour traiter les données manquantes. En fonction de leur importance, vous pouvez choisir d'imputer les valeurs manquantes ou de les supprimer entièrement.
Par ailleurs, la représentation des données manquantes par une couleur ou un motif distinct peut mettre en évidence leur présence sans induire l'observateur en erreur.
3. Dimensionnez correctement vos données
Les données présentant de grandes variances ou des valeurs aberrantes peuvent fausser la visualisation, ce qui rend difficile la détermination de l'existence de schémas dans les données.
Normalisez ou mettez à l'échelle vos données afin de vous assurer que la carte thermique reflète correctement les différences au sein de l'ensemble de données. Selon la nature de vos données, des techniques telles que la mise à l'échelle min-max, la normalisation du score Z ou même les transformations logarithmiques peuvent s'avérer bénéfiques.
4. Utilisez les annotations avec parcimonie
Bien que les annotations puissent ajouter des détails précieux en affichant des valeurs exactes, le fait de surcharger votre carte thermique d'annotations peut la rendre difficile à lire, en particulier pour les grands ensembles de données.
Limitez les annotations aux points de données clés ou utilisez-les dans des cartes thermiques plus petites.
5. Ajuster les dimensions de la carte thermique
Le rapport d'aspect et la taille par défaut peuvent ne pas convenir à votre ensemble de données, ce qui entraîne des cellules écrasées ou un affichage étriqué qui masque les motifs.
Personnalisez la taille et le rapport d'aspect de votre carte thermique afin que chaque cellule soit clairement visible et que le modèle global soit facile à discerner.
Conclusion
La fonction "heatmap" de Seaborn permet de visualiser des modèles de données de manière accrocheuse et est particulièrement utile pour visualiser les corrélations entre les variables numériques.
Cependant, il est important de suivre les meilleures pratiques. Il s'agit notamment de choisir la bonne palette de couleurs, de traiter les données manquantes de manière réfléchie, de mettre correctement les données à l'échelle, d'utiliser les annotations avec parcimonie et d'ajuster les dimensions de la carte thermique.
Vous souhaitez vous plonger dans la bibliothèque de Seaborn ? Notre cours Introduction à la visualisation de données avec Seaborn est idéal pour les débutants. Si vous êtes un utilisateur plus avancé, vous pouvez approfondir vos connaissances grâce à notre cours Visualisation de données intermédiaire avec Seaborn.
Commencez votre voyage Seaborn dès aujourd'hui !
cours
Visualisation de données intermédiaire avec Seaborn
cours