Matplotlib : tracés graphiques
Contents
4. Matplotlib : tracés graphiques#
Le module matplotlib
permet le tracé graphique à partir de listes de valeurs (ou plus souvent de vecteurs numpy
).
4.1. Importation du module#
La grande majorité des fonctions utiles sont dans le sous module pyplot
, c’est pourquoi, on importera directement matplotlib.pyplot
:
import matplotlib.pyplot as plt
Question
Pour utiliser la fonction subplots
de la bibliothèque matplotlib.pyplot
. On utilise alors subplots(...)
ou plt.subplots(...)
?
Cliquez pour avoir la réponse.
On a importé matplotlib.pyplot
dans un espace nommé plt
, on utilisera donc la syntaxe plt.subplots(...)
.
4.2. Eléments d’un graphique#
Les éléments principaux sont données sur le schéma ci-dessous.
On distinguera par la suite la fenêtre graphique des axes (endroit où on trace des courbes) : une fenêtre graphique peut contenir plusieurs axes comme sur l’exemple suivant (4 axes ou zone de tracé).
4.3. Méthode générale#
4.3.1. Un exemple basique#
"""
On crée les données à tracer. Ici le tracer d'une fonction sinus
"""
import numpy as np # Les vecteurs numpy sont plus facilement manipulables.
x = np.linspace(0, 2 * np.pi, 1000) # 1000 points espacés entre 0 et 2pi
y = np.sin(x) # Numpy permet d'appliquer sin() aux 1000 points en une ligne.
"""
On crée maintenant le graphique
"""
f, ax = plt.subplots() # On crée la fenêtre graphique et les axes (= zone de tracé, ici une seule zone)
f.suptitle("Titre du graphique") # On donne un titre au graphique
ax.set_xlabel("Temps (s)") # On légende les abscisses de la zone de tracé
ax.set_ylabel("Position (m)") # On légende les ordonnées de la zone de tracé
ax.plot(x, y, label="Légende") # On trace la courbe voulue
ax.legend() # On affiche la légende de la zone de tracé
ax.grid() # Optionnel : permet d'afficher une grille sur le graphique
plt.show() # On demande d'afficher le graphique.
4.3.2. Remarques sur le code#
subplots
créer une fenêtre graphique avec une zone de tracé. On affecte la fenêtre graphique et les axes (zone de tracé) à des variables (icif
etax
) pour être sûr d’affecter le titre au bon graphique (si on doit en utiliser plusieurs) ou aux bons axes (idem).Le
f.
permet de modifier spécifique la fenêtre graphique associée. On peut ajouter un titre à la fenêtre graphiquef
(f.suptitle
).Idem pour
ax.
qui permet de légender les axes (ax.set_xlabel(...)
) et d’y tracer un graphique (ax.plot(...)
).La légende est affichée par la méthode
legend()
mais pour légender une courbe il faut utiliser l’argumentlabel="chaine de caractère"
dans la fonctionplot
show
permet d’afficher les graphiques qui ont été créé.
4.3.3. Les types de courbes utiles.#
4.3.3.1. Fonctions utiles#
Sans être exhaustif, on donne trois types de courbes utiles :
tracé d’un histogramme :
hist(liste_valeurs, bins='rice')
L’argument
bins='rice'
est optionnel (ou remplaçable parbins=1000
) mais il permet de demander à Python d’ajuster le nombre de bâtons de l’histogramme en fonction du nombre d’éléments deliste_valeurs
.
Ca évite de tracer 10 bâtons quand on a 1000000 valeurs…
tracé d’un nuage de points (reliés ou nom) :
plot(vecteur_abscisse, vecteur ordonnee)
tracé d’un nuage de points (reliés ou nom) avec incertitudes :
errorbar(vecteur_abscisse, vecteur ordonnee, xerr=vecteur_incertitude_sur x, , yerr=vecteur_incertitude_sur y)
Si toutes les incertitudes sont identiques, on peut mettre une valeur seule au lieu d’un vecteur
On peut ne donner qu’une seule des deux incertitudes (sur y seulement par exemple). On trace avec des barres d’incertitude au lieu des croix d’incertitude).
4.3.3.2. Arguments optionnels utiles#
Les fonctions précédentes permettent d’utiliser des arguments optionnels pour modifier l’allure de la courbe ou légender la courbe.
# Un exemple :
ax.plot(x, y, marker='+', linestyle='', color='red', label='Nuages')
"""
On trace ainsi les points (x[i], y[i]) :
- sans relier les points (linestyle = '')
- en plaçant des marqueurs + pour chaque points (marker = '+')
- en rouge (color = 'red')
- avec comme légende "Nuages" (label="Nuages")
"""
On cite les plus utiles :
linestyle
: style de ligne qui relie les points (non exhaustif):linestyle = ''
: pas de lignelinestyle = '-'
: ligne continuelinestyle = ':'
: pointillés
marker
: type de marqueurs pour les points (x[i], y[i]) :marker = '+'
marker = '*'
marker = 'o'
marker = ''
: pas de marqueurs
label = 'La légende'
: associer une légende à une courbecolor = 'nom_de_couleur_en_anglais'
label = 'La légende'
: associer une légende à une courbecolor = 'nom_de_couleur_en_anglais'
4.4. Autres fonctions et arguments#
La liste présente les plus importantes et à connaître. Vous en rencontrerez peut-être d’autres (pas à connaître):
pour sauvegarder la figure
pour mettre une échelle logarithmique sur les abscisses
pour ajuster l’apparence des barres d’incertitudes
pour ajuster la taille de la courbe
pour ajouter du texte ou des flèches
4.5. Pour vous entraîner#
Voici le lien vers les exercices pour vous entraîner sur l’utilisation de numpy et matplotlib