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()
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()
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.
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()
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.
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éférence Matplotlib
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 |