Une introduction sur la visualisation de données avec Matplotlib et Python

article matplotlib numpy python scipy Jul 08, 2024

Python matplotlib

 

La visualisation de données est un élément essentiel de la science des données. Elle permet de transformer des données brutes en informations compréhensibles et exploitables. Dans cet article, nous allons explorer l'utilisation de Matplotlib, une bibliothèque de visualisation en Python. Nous verrons comment créer des graphiques de base, personnaliser des visualisations  et créer un graphique de dispersion (scatter plot) avec une droite de régression avec la bibliothèque scipy.

Introduction à Matplotlib

Matplotlib est l'une des bibliothèques de visualisation de données les plus populaires en Python. Elle est puissante et flexible, ce qui permet de créer une grande variété de graphiques, des plus simples aux plus complexes.

Pour commencer, vous devez installer Matplotlib, numpy et scipy, si ce n'est pas déjà fait. Vous pouvez l'installer via pip :

pip install matplotlib numpy scipy

Création de graphiques de base

Commençons par un exemple simple de tracé d'une fonction sinusoïdale. Voici un code Python qui génère un graphique de la fonction sinus :

import numpy as np
import matplotlib.pyplot as plt

x = np.arange(0, 5, 0.1)
y = np.sin(x)
plt.plot(x, y)
plt.title('Graphique de la fonction sinusoïdale')
plt.xlabel('x')
plt.ylabel('sin(x)')
plt.show()

Ce code crée un graphique en ligne où l'axe des x représente les valeurs de 0 à 5 par incréments de 0,1, et l'axe des y représente les valeurs de la fonction sinusoïdale.

Personnalisation des graphiques

Matplotlib offre une grande flexibilité pour personnaliser vos graphiques. Vous pouvez modifier les couleurs, les styles de ligne, ajouter des légendes, des annotations et bien plus encore.

Changer la couleur et le style de ligne

Pour changer la couleur et le style de ligne du graphique, vous pouvez utiliser des arguments supplémentaires dans la fonction plot :

plt.plot(x, y, color='green', linestyle='--', linewidth=2)

Ajouter une légende

Pour ajouter une légende, utilisez la fonction legend :

plt.plot(x, y, label='sin(x)')
plt.legend()

Ajouter des annotations

Les annotations peuvent être ajoutées avec la fonction annotate :

plt.annotate('Max', xy=(1.5, 1), xytext=(2, 1.5),
             arrowprops=dict(facecolor='black', shrink=0.05))

Vous pouvez tester le code en entier en cliquant sur Run, Pour agrandir le graph cliquer sur

  import numpy as np import matplotlib.pyplot as plt x = np.arange(0, 5, 0.1) y = np.sin(x) plt.plot(x, y, color='green', linestyle='--', linewidth=2,label='sin(x)') plt.title('Graphique de la fonction sinusoïdale') plt.annotate('Max', xy=(1.5, 1), xytext=(0.5, 0.5), arrowprops=dict(facecolor='black', shrink=0.05)) plt.xlabel('x') plt.ylabel('sin(x)') plt.legend() plt.show()    
Cliquer Sur 'Run'.

 

Types de graphiques courants

Matplotlib permet de créer une variété de types de graphiques. Voici quelques exemples courants.

Graphiques à barres

Les graphiques à barres sont utiles pour comparer des catégories distinctes. Voici un exemple :

import matplotlib.pyplot as plt
import numpy as np

# Définir les catégories et les valeurs associées
categories = ['A', 'B', 'C', 'D']
values = [10, 24, 36, 40]
colors = ['red', 'green', 'blue', 'orange']  # Couleurs personnalisées pour chaque barre

# Convertir les catégories en valeurs numériques
x_pos = np.arange(len(categories))

# Créer une nouvelle figure et des axes
fig, ax = plt.subplots()

# Créer le graphique à barres avec les couleurs spécifiées
bars = ax.bar(x_pos, values, color=colors)
bar_width = 0.8
# Ajouter les labels des catégories sur l'axe des x
# Ajouter les labels des catégories au milieu des barres
ax.set_xticks(x_pos + bar_width / 2)
ax.set_xticklabels(categories)

# Ajouter un titre et des labels aux axes
ax.set_title('Graphique à barres avec couleurs personnalisées')
ax.set_xlabel('Catégories')
ax.set_ylabel('Valeurs')

# Ajouter une légende des couleurs
ax.legend(bars, categories)

# Afficher le graphique
plt.show()

Vous pouvez tester le code en entier en cliquant sur Run, vous pouvez aussi le modifier, changer les couleurs ou les valeurs. Pour agrandir le graph cliquer sur 

  import matplotlib.pyplot as plt import numpy as np # Définir les catégories et les valeurs associées categories = ['A', 'B', 'C', 'D'] values = [10, 24, 36, 40] colors = ['red', 'green', 'blue', 'orange'] # Couleurs personnalisées pour chaque barre # Convertir les catégories en valeurs numériques x_pos = np.arange(len(categories)) # Créer une nouvelle figure et des axes fig, ax = plt.subplots() # Créer le graphique à barres avec les couleurs spécifiées bars = ax.bar(x_pos, values, color=colors) bar_width = 0.8 # Ajouter les labels des catégories sur l'axe des x # Ajouter les labels des catégories au milieu des barres ax.set_xticks(x_pos + bar_width / 2) ax.set_xticklabels(categories) # Ajouter un titre et des labels aux axes ax.set_title('Graphique à barres avec couleurs personnalisées') ax.set_xlabel('Catégories') ax.set_ylabel('Valeurs') # Ajouter une légende des couleurs ax.legend(bars, categories) # Afficher le graphique plt.show()    
Cliquer Sur 'Run'.

Nuages de points et régressions

Voici un exemple de code Python pour tracer un graphique de dispersion (scatter plot) avec une droite de régression, et une explication détaillée.

import numpy as np
import matplotlib.pyplot as plt
from scipy import stats

# Générer des données aléatoires
np.random.seed(0)
x = np.random.rand(50)
y = 2 * x + 1 + np.random.normal(scale=0.1, size=x.shape)

# Créer un graphique de dispersion
plt.scatter(x, y, color='blue', label='Données')

# Calculer la droite de régression
slope, intercept, r_value, p_value, std_err = stats.linregress(x, y)
regression_line = slope * x + intercept

# Tracer la droite de régression
plt.plot(x, regression_line, color='red')

# Ajouter un titre et des labels aux axes
plt.title('Graphique de dispersion avec droite de régression')
plt.xlabel('x')
plt.ylabel('y')
plt.legend()

# Afficher le graphique
plt.show()

 

Vous pouvez tester et exécuter le code dans la fenêtre ci-dessous :

 

  import numpy as np import matplotlib.pyplot as plt from scipy import stats # Générer des données aléatoires np.random.seed(0) x = np.random.rand(50) y = 2 * x + 1 + np.random.normal(scale=0.1, size=x.shape) # Créer un graphique de dispersion plt.scatter(x, y, color='blue', label='Données') # Calculer la droite de régression slope, intercept, r_value, p_value, std_err = stats.linregress(x, y) regression_line = slope * x + intercept # Tracer la droite de régression plt.plot(x, regression_line, color='red') # Ajouter un titre et des labels aux axes plt.title('Graphique de dispersion avec droite de régression') plt.xlabel('x') plt.ylabel('y') plt.legend() # Afficher le graphique plt.show()    
Cliquer Sur 'Run'.

Conclusion

La visualisation des données est une compétence essentielle pour tout scientifique des données. Matplotlib, avec sa flexibilité et sa puissance, est un outil indispensable pour créer des visualisations claires et informatives. Que vous soyez débutant ou expert, Matplotlib a quelque chose à offrir pour chaque niveau de compétence. Expérimentez avec différents types de graphiques et personnalisez-les pour répondre à vos besoins spécifiques.

 

Références

 

 

Ne ratez pas nos prochains contenus

Inscrivez vous à notre Newsletter pour recevoir tous nos prochains contenus gratuits : Articles, Webinaires, Podcasts, Astuces vidéos,...

Data AI Lab

Transformez votre quotidien avec des compétences clés en data. Des formations, conseils et défis pour une maîtrise pointue en Data Science et IA.

 

Liens

Accueil
Challenges Data
Consulting

 

Formations

Parcours Data Analyst
Parcours Data Engineer
Voir toutes les formations

 

Ressources

Articles
Webinaires
Tuto vidéos

 

All rights reserved 2024 - Mentions légales - Politique de confidentialité