Contactez-nous

Matplotlib et Seaborn : visualisation de données

Découvrez les bibliothèques Matplotlib et Seaborn pour la visualisation de données en Python. Créez des graphiques de qualité (histogrammes, nuages de points, courbes, diagrammes en barres, etc.) pour explorer et communiquer vos données.

Pourquoi la visualisation de données est-elle importante ?

La visualisation de données est un élément essentiel de l'analyse de données et de la science des données. Elle permet de :

  • Explorer les données : Détecter des tendances, des motifs, des relations, des anomalies, etc.
  • Comprendre les données : Transformer des données brutes en informations compréhensibles.
  • Communiquer les résultats : Présenter les données de manière claire et concise à un public (collègues, clients, décideurs, etc.).
  • Prendre des décisions : Baser les décisions sur des informations visuelles plutôt que sur des intuitions.

Un graphique bien conçu peut souvent révéler des informations qui seraient difficiles à déceler dans un tableau de chiffres.

Python offre plusieurs bibliothèques pour la visualisation de données, dont les plus populaires sont Matplotlib et Seaborn.

Matplotlib : la bibliothèque de base pour la visualisation

Matplotlib est la bibliothèque de visualisation de base en Python. Elle permet de créer une grande variété de graphiques statiques, interactifs et animés, en 2D et en 3D.

Matplotlib est une bibliothèque de bas niveau, ce qui signifie qu'elle offre un contrôle fin sur tous les aspects des graphiques, mais elle peut être un peu verbeuse pour les graphiques simples.

Matplotlib est généralement importé avec l'alias `plt` :

import matplotlib.pyplot as plt

L'interface `pyplot` fournit une interface de type MATLAB pour créer des graphiques.

Voici un exemple simple de création d'un graphique avec Matplotlib :

import matplotlib.pyplot as plt

# Données
x = [1, 2, 3, 4, 5]
y = [2, 4, 1, 3, 5]

# Créer le graphique
plt.plot(x, y)  # Trace une ligne reliant les points (x, y)

# Ajouter des titres et des étiquettes
plt.title("Mon premier graphique")
plt.xlabel("Axe des x")
plt.ylabel("Axe des y")

# Afficher le graphique
plt.show()

Ce code crée une simple courbe reliant les points (1, 2), (2, 4), (3, 1), (4, 3), et (5, 5). Il ajoute également un titre et des étiquettes aux axes.

Matplotlib offre de nombreuses options pour personnaliser l'apparence des graphiques (couleurs, styles de lignes, marqueurs, légendes, grilles, etc.).

Types de graphiques courants avec Matplotlib

Voici quelques exemples de types de graphiques courants que vous pouvez créer avec Matplotlib :

  • Courbes (plot) : `plt.plot(x, y)`
  • Nuages de points (scatter) : `plt.scatter(x, y)`
  • Diagrammes en barres (bar) : `plt.bar(x, height)`
  • Histogrammes (hist) : `plt.hist(x, bins=...)`
  • Diagrammes circulaires (pie) : `plt.pie(x)`
  • Boîtes à moustaches (boxplot) : `plt.boxplot(x)`
  • Cartes de chaleur (heatmap) : `plt.imshow(data)`
  • Et bien d'autres...

Exemple (histogramme) :

import matplotlib.pyplot as plt
import numpy as np

# Générer des données aléatoires
donnees = np.random.randn(1000)  # 1000 nombres aléatoires suivant une loi normale

# Créer l'histogramme
plt.hist(donnees, bins=30)  # 30 intervalles

# Ajouter des titres et des étiquettes
plt.title("Histogramme de données aléatoires")
plt.xlabel("Valeur")
plt.ylabel("Fréquence")

# Afficher le graphique
plt.show()

Exemple (nuage de points) :

import matplotlib.pyplot as plt
import numpy as np

# Générer des données aléatoires
x = np.random.rand(50)
y = 2 * x + 1 + 0.1 * np.random.randn(50)  # y = 2x + 1 + bruit

# Créer le nuage de points
plt.scatter(x, y)

# Ajouter des titres et des étiquettes
plt.title("Nuage de points avec une tendance linéaire")
plt.xlabel("x")
plt.ylabel("y")

# Afficher le graphique
plt.show()

Seaborn : visualisation statistique de haut niveau

Seaborn est une bibliothèque Python de visualisation de données basée sur Matplotlib. Elle fournit une interface de haut niveau pour créer des graphiques statistiques attrayants et informatifs.

Seaborn est particulièrement bien intégrée avec les structures de données de Pandas (DataFrames).

Seaborn offre :

  • Des thèmes et des styles visuels plus esthétiques que Matplotlib par défaut.
  • Des fonctions spécialisées pour visualiser des distributions statistiques, des relations entre variables, des données catégorielles, etc.
  • Une abstraction de haut niveau : vous pouvez créer des graphiques complexes avec moins de code qu'avec Matplotlib.

Seaborn est généralement importé avec l'alias `sns` :

import seaborn as sns

Exemple (histogramme avec Seaborn) :

import seaborn as sns
import numpy as np

# Générer des données aléatoires
donnees = np.random.randn(1000)

# Créer l'histogramme avec Seaborn
sns.histplot(donnees)

# Afficher le graphique (note : pas besoin de plt.show() si vous utilisez un notebook IPython/Jupyter)
#plt.show()

Exemple (nuage de points avec Seaborn, et ajustement d'une droite de régression) :

import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

# Générer des données aléatoires
x = np.random.rand(50)
y = 2 * x + 1 + 0.1 * np.random.randn(50)

# Créer le nuage de points et la droite de régression avec Seaborn
sns.regplot(x=x, y=y)

# Afficher le graphique
plt.show()

Seaborn simplifie la création de nombreux types de graphiques statistiques courants, et il offre une esthétique plus moderne que Matplotlib par défaut.

Personnalisation des graphiques

Matplotlib et Seaborn offrent de nombreuses options pour personnaliser l'apparence de vos graphiques :

  • Couleurs : Vous pouvez spécifier les couleurs des lignes, des points, des barres, etc.
  • Styles de lignes : Vous pouvez choisir entre différents styles de lignes (continu, pointillé, tirets, etc.).
  • Marqueurs : Vous pouvez choisir différents symboles pour représenter les points (cercles, carrés, triangles, etc.).
  • Titres et étiquettes : Vous pouvez ajouter des titres au graphique et aux axes.
  • Légendes : Vous pouvez ajouter une légende pour expliquer les différents éléments du graphique.
  • Grilles : Vous pouvez ajouter une grille pour faciliter la lecture des valeurs.
  • Limites des axes : Vous pouvez définir les limites des axes x et y.
  • Echelles logarithmiques : Vous pouvez utiliser des échelles logarithmiques pour les axes.
  • Annotations : Vous pouvez ajouter du texte ou des flèches pour annoter le graphique.
  • Multiples graphiques : Vous pouvez combiner plusieurs graphiques sur une même figure.
  • Sauvegarde : Vous pouvez sauvegarder vos graphiques dans différents formats (PNG, JPG, PDF, SVG, etc.).

Exemple (personnalisation d'un graphique Matplotlib) :

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y, color='red', linestyle='--', marker='o', label='sin(x)')
plt.title("Fonction sinus")
plt.xlabel("x")
plt.ylabel("sin(x)")
plt.xlim(0, 10)  # Limites de l'axe x
plt.ylim(-1.2, 1.2)  # Limites de l'axe y
plt.grid(True) #Affiche une grille.
plt.legend()  # Affiche la légende

plt.savefig("sinus.png")  # Sauvegarde le graphique dans un fichier
plt.show()

La documentation de Matplotlib et de Seaborn fournit des informations détaillées sur toutes les options de personnalisation disponibles.