Les cartes de chaleur sont inestimables pour visualiser des données sur une grille bidimensionnelle, où l’intensité de la couleur représente l’amplitude de chaque valeur. Matplotlib, une puissante bibliothèque de visualisation de données Python, offre plusieurs manières de créer des cartes de chaleur convaincantes. Cet article explore trois méthodes populaires : l’utilisation de imshow()
, l’utilisation de la bibliothèque Seaborn et l’utilisation de pcolormesh()
. Nous aborderons chaque méthode avec des exemples et des explications clairs.
Table des matières
imshow()
: Une approche simpleheatmap()
de Seaborn : Fonctionnalités amélioréespcolormesh()
: Pour les données irrégulières et un contrôle précis
imshow()
: Une approche simple
La fonction imshow()
de Matplotlib fournit un moyen simple de générer des cartes de chaleur. Elle accepte un tableau 2D en entrée, en mappant les valeurs aux couleurs à l’aide d’une palette de couleurs choisie.
import matplotlib.pyplot as plt
import numpy as np
# Données d'échantillon
data = np.random.rand(10, 10)
# Création de la carte de chaleur
plt.imshow(data, cmap='viridis')
# Ajout d'une barre de couleur
plt.colorbar(label='Valeur')
# Ajout d'étiquettes et de titre
plt.xlabel('Axe X')
plt.ylabel('Axe Y')
plt.title('Carte de chaleur 2D utilisant imshow()')
# Affichage du graphique
plt.show()
Ce code crée une carte de chaleur où l’intensité de la couleur des cellules reflète la valeur correspondante dans le tableau data
. L’argument cmap
sélectionne la palette de couleurs (par exemple, ‘plasma’, ‘magma’, ‘inferno’, ‘cividis’). colorbar()
ajoute une légende mappant les couleurs aux valeurs.
heatmap()
de Seaborn : Fonctionnalités améliorées
Seaborn, basé sur Matplotlib, offre une interface de niveau supérieur pour créer des tracés statistiquement perspicaces et visuellement attrayants, y compris des cartes de chaleur. Sa fonction heatmap()
simplifie le processus et ajoute des fonctionnalités utiles.
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# Données d'échantillon
data = np.random.rand(10, 10)
# Création de la carte de chaleur
sns.heatmap(data, annot=True, cmap='coolwarm', fmt=".2f")
# Ajout du titre
plt.title('Carte de chaleur 2D utilisant Seaborn')
# Affichage du graphique
plt.show()
Cet exemple Seaborn génère une carte de chaleur similaire, mais avec annot=True
affichant les valeurs numériques dans chaque cellule, améliorant la lisibilité. fmt
contrôle la mise en forme des annotations.
pcolormesh()
: Pour les données irrégulières et un contrôle précis
pcolormesh()
de Matplotlib est idéal pour les cartes de chaleur avec des données irrégulièrement espacées ou lorsqu’un contrôle précis des limites des cellules est nécessaire.
import matplotlib.pyplot as plt
import numpy as np
# Données d'échantillon (utilisation de meshgrid pour la démonstration)
x = np.arange(0, 10, 1)
y = np.arange(0, 10, 1)
X, Y = np.meshgrid(x, y)
data = np.sin(X) * np.cos(Y)
# Création de la carte de chaleur
plt.pcolormesh(X, Y, data, cmap='RdBu')
# Ajout d'une barre de couleur
plt.colorbar(label='Valeur')
# Ajout d'étiquettes et de titre
plt.xlabel('Axe X')
plt.ylabel('Axe Y')
plt.title('Carte de chaleur 2D utilisant pcolormesh()')
# Affichage du graphique
plt.show()
Cet exemple utilise meshgrid
pour créer des grilles de coordonnées x et y, définissant les limites des cellules pour pcolormesh()
. Cela offre une plus grande flexibilité que imshow()
. La palette de couleurs RdBu
est un schéma divergent adapté aux données à la fois positives et négatives. N’oubliez pas d’installer les bibliothèques nécessaires à l’aide de pip install matplotlib seaborn
.