Botafogo

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é) :

text
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 :

python
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 à 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 inches de large et inches de hauteur (1 inch 1 pouce = 2.54 cm).
  • plt.plot(t, y, arguments optionnels) représente les données - qui se trouvent dans les tableaux et . 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 (abscisses).
  • plt.ylabel(ylabel) utilise la chaîne de caractères donnée en argument pour spécifier la légende de l’axe (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) :

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

Polycopié rédigé par Roger Sauser, CMS. Sauf indication contraire, le contenu de ce document est soumis à une licence Creative Commons internationale, Attribution - Utilisation non commerciale - Partage dans les mêmes conditions 4.0 International (CC BY-NC-SA 4.0).

© 2026 Projet Botafogo. En savoir plus.