Introduction à Matplotlib

Qu’est-ce que Matplotlib ?

  • La visualisation de données est une compétence essentielle en sciences afin de représenter graphiquement des données complexes pour en faciliter l’analyse et l’interprétation.
  • Matplotlib est une bibliothèque pour la visualisation de données.
  • Elle permet de créer une variété de graphiques pour représenter les données de manière claire et informative.

Utilisation de Matplotlib

  • Pour commencer, vous devez importer dans votre script Python :
import matplotlib.pyplot as plt
  • Pour vérifier que Matplotlib est bien installé sur votre environnement :
# Version de Matplotlib
plt.__version__

Création de graphiques simples

Graphique en Lignes

import matplotlib.pyplot as plt

# Les coordonnées de 5 points
x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]

# Traçage du graphique
plt.plot(x, y)

# Définition des axes
plt.xlabel('Axe x')
plt.ylabel('Axe y')

# Ajout du titre du graphique
plt.title('Graphique en lignes')

# Affichage du graphique
plt.show()

Résultat: Graphique en lignes

Graphique en barres

categories = ['A', 'B', 'C', 'D']
valeurs = [3, 7, 5, 4]

plt.bar(categories, valeurs)
plt.xlabel('Catégories')
plt.ylabel('Valeurs')
plt.title('Graphique en barres')
plt.show()

Résultat: Graphique en barres

Histogramme

data = [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]

plt.hist(data, bins=5, range=(1, 5), density=False, cumulative=False, color='green', edgecolor='black')
plt.xlabel('Valeurs')
plt.ylabel('Fréquence')
plt.title('Histogramme')
plt.show()

Explication de la fonction hist :

  • x : Les données à tracer sous forme de liste ou de tableau.
  • bins : Le nombre de bacs (ou intervalles) dans lesquels les données sont regroupées. Par défaut, Matplotlib choisit automatiquement le nombre de bacs.
  • range : Une paire de valeurs (min, max) pour définir la plage des bacs.
  • density : Si True, l’aire sous l’histogramme sera normalisée à 1 (utile pour les distributions de probabilité).
  • cumulative : Si True, l’histogramme sera cumulatif.
  • color : La couleur des barres de l’histogramme.
  • edgecolor : La couleur des bordures des barres.

Résultat: Histogramme

Différence entre un histogramme et un graphique en barres

  • Histogramme : Utilisé pour montrer la distribution d’un ensemble de données continues. Les données sont regroupées en intervalles, et chaque barre représente le nombre de données dans chaque intervalle. Par exemple, un histogramme peut montrer la distribution des âges d’un groupe de personnes.

  • Graphique en barres : Utilisé pour comparer des catégories distinctes. Chaque barre représente une catégorie et la hauteur de la barre montre la valeur de cette catégorie. Par exemple, un graphique en barres peut montrer les ventes de différents produits.

En résumé, un histogramme montre la distribution d’un ensemble de données continues, tandis qu’un graphique en barres compare des catégories distinctes.

Graphique en nuages de points

x = [1, 2, 3, 4, 5]
y = [2, 3, 5, 7, 11]
sizes = [20, 50, 80, 200, 500]
plt.scatter(x, y, s=sizes)
plt.xlabel('Axe x')
plt.ylabel('Axe y')
plt.title('Graphique en nuage de points')
plt.show()

Résultat: Graphique en nuage

Graphique en secteurs

# Données
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # Décale le deuxième secteur

# Création du graphique en secteurs
plt.pie(sizes, explode=explode, labels=labels, colors=['gold', 'yellowgreen', 'lightcoral', 'lightskyblue'],
        autopct='%1.1f%%', shadow=True, startangle=140)
plt.axis('equal')  # Assure que le graphique est circulaire
plt.title('Graphique en secteurs')
plt.show()

Explication de la fonction pie

  • sizes : Les tailles des secteurs, sous forme de liste ou de tableau.
  • labels : Une séquence de chaînes de caractères fournissant les étiquettes pour chaque secteur.
  • colors : Une séquence de couleurs pour les secteurs.
  • autopct : Une chaîne de format ou une fonction utilisée pour étiqueter les secteurs avec leur valeur numérique. Par exemple, '%1.1f%%' affiche les pourcentages avec une décimale.
  • pctdistance : La distance relative le long du rayon à laquelle le texte généré par autopct est dessiné.
  • shadow : Si True, dessine une ombre sous le graphique.
  • startangle : L’angle par lequel le début du graphique est tourné, dans le sens inverse des aiguilles d’une montre à partir de l’axe des x.
  • radius : Le rayon du graphique.
  • explode : Une séquence de fractions du rayon avec lesquelles décaler chaque secteur.
  • Secteurs : Chaque secteur représente une catégorie des données.
  • Étiquettes : Les étiquettes sont affichées à côté de chaque secteur.
  • Pourcentages : Les pourcentages sont affichés à l’intérieur des secteurs si autopct est spécifié.
  • Ombre : Une ombre peut être ajoutée pour un effet visuel supplémentaire.

Résultat: Graphique en secteurs

Personnalisation et mise en forme des graphiques

Couleurs et styles de lignes

# Tirets verts, points marqués avec des cercles o
plt.plot(x, y, color='green', linestyle='--', marker='o')
plt.show()

Ajout de légendes

plt.plot(x, y, label='Données')
plt.legend()
plt.show()

Spécifier les valeurs sur les axes x et y

Il est possible de préciser les données affichées sur les axes des graphiques grace aux commandes plt.xticks() pour l’axes des x et plt.yticks() pour les y.

La liste passée en paramètre de ces fonctions permet par la meme occasion de forcer les valeurs à afficher sur ces axes.

liste_profit = [211000, 183300, 224700, 222700, 209600, 201400, 295500, 361400, 234000, 266700, 412800, 300200]
liste_mois = ["jan", "fev", "mars", "avr", "mai", "juin", "juil", "aout", "sept", "oct", "nov", "dec"]

# commande pour le tacé
plt.plot(liste_mois, liste_profit, label = "Profit de l'année dernière par mois")

# commandes de mises en forme du graphique
plt.title('Profit / Mois')

plt.xlabel('Mois')
plt.xticks(liste_mois)

plt.ylabel('Profit ($)')
plt.yticks([100000, 200000, 300000, 400000, 500000])

Graphiques multiples

Deux graphiques en lignes sur le même dessin

x = [1, 2, 3, 4, 5]
y1 = [2, 3, 5, 7, 11]
y2 = [1, 4, 6, 8, 10]

# Création du graphique
plt.plot(x, y1, label='Série 1', color='blue', linestyle='-', marker='o')
plt.plot(x, y2, label='Série 2', color='red', linestyle='--', marker='x')

# Ajout des étiquettes et du titre
plt.xlabel('Axe x')
plt.ylabel('Axe y')
plt.title('Deux graphiques en lignes')
plt.legend()

# Affichage du graphique
plt.show()

Résultat: Graphique en secteurs


Référence Matplotlib

Astuce

Pour tout savoir sur Matplotlib: Site officiel Matplotlib.

Liste des principales méthodes de Matplotlib

Voici un tableau listant certaines des méthodes courantes de Matplotlib avec leurs descriptions :

Méthode Description
plt.plot() Crée un graphique en ligne.
plt.scatter() Crée un graphique de dispersion.
plt.bar() Crée un graphique à barres verticales.
plt.barh() Crée un graphique à barres horizontales.
plt.hist() Crée un histogramme.
plt.pie() Crée un graphique en secteurs (camembert).
plt.imshow() Affiche une image sur un graphique.
Annotation
plt.legend() Ajoute une légende au graphique.
plt.xlabel() Ajoute une étiquette à l’axe des x.
plt.ylabel() Ajoute une étiquette à l’axe des y.
plt.title() Ajoute un titre au graphique.
Affichage / sauvegarde
plt.savefig() Enregistre le graphique sous forme de fichier image.
plt.show() Affiche le graphique à l’écran.

Les paramètres des méthodes de traçage

  • Voici un tableau listant les paramètres des méthodes plot, hist, scatter, pie avec leurs descriptions :
Méthode Paramètre Description
plot x Données pour l’axe des x.
y Données pour l’axe des y.
color Couleur de la ligne.
linestyle Style de la ligne (par exemple, ‘-’, ‘–’, ‘-.’, ‘:’).
linewidth Largeur de la ligne.
marker Marqueur pour les points de données (par exemple, ‘o’, ’s’, ‘^’).
label Étiquette pour la légende.
alpha Transparence de la ligne (0.0 à 1.0).
hist x Données pour l’histogramme.
bins Nombre de bacs (bins) ou séquence définissant les bacs.
range Plage des valeurs à inclure.
density Si True, normalise l’histogramme.
cumulative Si True, affiche un histogramme cumulatif.
color Couleur des barres de l’histogramme.
label Étiquette pour la légende.
alpha Transparence des barres (0.0 à 1.0).
scatter x Données pour l’axe des x.
y Données pour l’axe des y.
s Taille des marqueurs.
c Couleur des marqueurs.
marker Style des marqueurs (par exemple, ‘o’, ’s’, ‘^’).
alpha Transparence des marqueurs (0.0 à 1.0).
label Étiquette pour la légende.
pie x Données pour les parts du graphique en secteurs.
labels Étiquettes pour chaque part.
colors Couleurs des parts.
autopct Format des pourcentages affichés (par exemple, ‘%1.1f%%’).
shadow Si True, ajoute une ombre.
explode Décale une part du centre (par exemple, [0, 0.1, 0, 0]).
startangle Angle de départ pour le premier secteur.
radius Rayon du graphique en secteurs.
counterclock Si True, les secteurs sont tracés dans le sens antihoraire.
pctdistance Distance du centre pour les étiquettes de pourcentage.

Liste de marqueurs

Marqueur Description
'.' Point
',' Pixel
'o' Cercle
'v' Triangle
's' Carré
'p' Pentagone
'*' Étoile
'h', 'H' Hexagone
'+' Plus
'x' Croix
'D', 'd' Diamant
'|' Ligne verticale
'_' Ligne horizontale

Liste de couleurs

Couleurs de bases

Base

Couleurs type CSS

Avancé

Atelier

Atelier sur la bibliothèque Matplotlib

Fichier ventes.csv