Nous allons étudier quelques-unes des possibilités offertes par
Matplotlib à travers les données d'une expérience de chute libre
(fichier texte ChuteLibreData.txt que nous avons déjà
utilisé) :
Données collectées (masse m en chute libre)
Date : 20 février 2025
No de la mesure Temps[s] Distance parcourue[m] Incertitude[m]
0 0 0 0
1 0.51 1.41 1.5
2 1.01 4.39 2.3
3 1.49 11.9 2.5
4 2. 20.7 2.9
5 2.5 28.8 2.7
6 2.99 45.9 2.9
Nous allons lire le fichier de données, représenter les données en les comparant avec le modèle théorique (équation horaire de la chute libre) et sauvegarder la figure obtenue :
import numpy as np
import matplotlib.pyplot as plt
# lecture des données depuis un fichier texte
tdata, ydata = np.loadtxt('ChuteLibreData.txt', usecols = (1,2), skiprows=4, unpack=True)
# création des tableaux abscisses et ordonnées pour la courbe théorique
t = np.linspace(0, 4, 100)
y = 0.5*9.81*t**2
# création de la représentation
plt.figure('Ma fenêtre de représentation', figsize = (8,4) )
plt.plot(t, y, 'r-', label='Données théoriques (chute libre)')
plt.plot(tdata, ydata, 'bo', label="Données expérimentales")
plt.xlabel('Temps de chute')
plt.ylabel('Distance verticale de chute')
plt.legend(loc='upper left')
plt.title('Chute libre : comparaison entre théorie et expérience')
# sauvegarder la représentation dans un fichier png
plt.savefig('ChuteLibre.png')
# afficher la représentation
plt.show()
Les fonctions des lignes \(9\) à \(15\) permettent de construire la représentation :
plt.figure() crée une fenêtre destinée à contenir la figure.
Il est possible de donner un nom à cette figure et de préciser ses dimensions
par l'intermédiaire d'un argument nommé supplémentaire (kwarg figsize). Par défaut, la fenêtre fait \(6.4\)
inches de large et \(4.8\) inches de hauteur (1 inch \(\equiv\) 1 pouce = 2.54 cm).
plt.plot(t, y, arguments optionnels) représente les données
\(t\)-\(y\) qui se trouvent dans les tableaux \(t\) et \(y\).
Le troisième argument est une chaîne de caractères qui spécifie la
couleur et le type de ligne ou de symbole qui doivent être utilisés pour
représenter les données.
Le kwarg label est une chaîne de caractères utilisée
ensuite par la fonction legend.
plt.xlabel(xlabel) utilise la chaîne de caractères donnée
en argument pour spécifier la légende de l'axe \(t\) (abscisses).
plt.ylabel(ylabel) utilise la chaîne de caractères donnée
en argument pour spécifier la légende de l'axe \(y\) (ordonnées).
plt.legend() crée la légende de la représentation
graphique.
Le kwarg loc permet de préciser la localisation de
la légende.
plt.title(label) ajoute un titre à la représentation
graphique.
Les lignes 17 et 19 permettent
de sauvegarder (plt.savefig(fname)) et
d'afficher (plt.show()) la représentation.
Figure sauvegardée :

Il est possible de compléter la représentation en ajoutant des
barres d'erreur à l'aide de la fonction plt.errorbar(x,y) :
import numpy as np
import matplotlib.pyplot as plt
# lecture des données depuis un fichier texte
tdata, ydata, erreur = np.loadtxt('ChuteLibreData.txt', usecols = (1,2,3), skiprows=4, unpack=True)
# création des tableaux abscisses et ordonnées pour la courbe théorique
t = np.linspace(0, 4, 100)
y = 0.5*9.81*t**2
# création de la représentation
plt.figure('Ma fenêtre de représentation', figsize = (8,4) )
plt.plot(t, y, 'r-', label='Données théoriques (chute libre)')
plt.errorbar(tdata, ydata, fmt='b.', label="Données expérimentales", xerr=0.1, yerr=erreur, ecolor='brown')
plt.xlabel('Temps de chute')
plt.ylabel('Distance verticale de chute')
plt.legend(loc='upper left')
plt.title('Chute libre : comparaison entre théorie et expérience')
# sauvegarder la représentation dans un fichier png
plt.savefig('ChuteLibreAvecErreur.png')
# afficher la représentation
plt.show()
La ligne 11 permet d'afficher les barres d'erreur en abscisse et
en ordonnée (l'erreur en abscisse est ici supposée constante et
l'erreur en ordonnée est lue à la ligne 4 à partir du
fichier ChuteLibreData.txt).
