2.4 Exemple détaillé

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 :

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).