Aller au contenu principal

Matplotlib - Représentation graphique

Ce que ce chapitre apporte

  • Comprendre la logique de tracé (Abscisse vs Ordonnée).
  • Respecter la norme ingénieur : Titre, Axes labellisés, Unités.
  • Savoir quand utiliser une ligne continue (modèle) ou des points (mesures).
  • Superposer plusieurs courbes pour comparer des résultats.
  • Créer des planches graphiques avec plusieurs fenêtres (Subplots).

Les figures s'affichent dans la page. NumPy, Matplotlib et SciPy sont installés dans l'éditeur du navigateur : l'image apparaît sous le code après exécution. On peut aussi recopier ces exemples sur la machine, ils y fonctionnent à l'identique.

En ingénierie, obtenir un résultat numérique (comme "vitesse = 12.4 m/s") ne suffit rarement. Pour analyser le comportement d'un système (un planeur qui descend, un moteur qui chauffe), on doit voir l'évolution des variables dans le temps.

C'est le rôle de la bibliothèque Matplotlib. C'est l'outil standard en Python pour transformer des listes de nombres en courbes lisibles et interprétables.

Dans ce chapitre, nous allons nous concentrer sur l'art de produire des graphiques scientifiquement valides (avec unités, légendes et échelles adaptées), une compétence indispensable pour les rapports techniques.

1. Premier tracé : Le concept de base

Pour tracer une courbe, l'ordinateur a besoin de deux séries de nombres de même taille :

  1. Les valeurs pour l'axe horizontal (généralement le temps t ou la position x).
  2. Les valeurs pour l'axe vertical (la grandeur physique étudiée, ex: y).

Notons sur les données

Pour les exemples ci-dessous, nous utilisons np.linspace juste pour générer rapidement des chiffres. Concentre-nous uniquement sur les commandes commençant par plt.

main.py
Sortie
>_ Prêt à exécuter…

2. L'Anatomie d'un graphique "Ingénieur"

Le graphique précédent est mathématiquement juste, mais techniquement inacceptable dans un rapport professionnel.

Pourquoi ? Parce qu'il est muet. En le regardant, personne ne peut dire si xx représente des secondes ou des kilomètres, ni si yy est une température ou une vitesse. Un chiffre sans unité n'a aucune valeur physique.

Pour qu'un graphique soit validé en sciences de l'ingénieur, il doit impérativement comporter ces 3 éléments :

  1. Des Labels d'axes (Grandeur + Unité) : C'est la règle absolue. Exemple : Temps (s) ou Vitesse (km/h).
  2. Un Titre explicite : On doit comprendre quel phénomène est simulé sans avoir besoin de lire le texte autour.
  3. Une Grille : Elle transforme un simple dessin en outil de mesure (pour lire la valeur précise à t=3st=3s par exemple).

Voici un exemple complet respectant ces règles, avec un modèle physique simple : la réponse indicielle d'un système du 1er ordre (ex: un moteur qui démarre).

main.py
Sortie
>_ Prêt à exécuter…

3. Modèle vs Mesures (Ligne ou Points ?)

Dans la vraie vie, on doit souvent comparer un modèle théorique à des données expérimentales. Par exemple, on peut avoir un modèle mathématique prédisant l'allongement d'un ressort en fonction de la force appliquée, et des relevés de capteurs mesurant cet allongement dans la réalité.

Deux types de données coexistent alors :

  • Des mesures expérimentales : Ce sont des points discrets, souvent bruités. On les représente par des marqueurs (points, croix), sans les relier.
  • Un modèle théorique : C'est une fonction mathématique continue. On la représente par une ligne.

Matplotlib permet de gérer cela via le paramètre de style (3ème argument de plot).

main.py
Sortie
>_ Prêt à exécuter…

4. Comparer plusieurs courbes (La Légende)

Si on veut comparer la trajectoire de deux planeurs différents, on doit tracer deux courbes sur le même graphique. L'astuce est d'appeler plt.plot deux fois avant de faire plt.show().

Pour que le lecteur s'y retrouve, on doit ajouter l'argument label="Nom de la courbe" dans chaque plot, puis appeler plt.legend() à la fin.

main.py
Sortie
>_ Prêt à exécuter…

5. Les Subplots : Tableaux de bord

Parfois, les échelles sont trop différentes pour tout mettre sur le même graphique (exemple : comparer l'altitude en mètres et la vitesse en m/s). On utilise alors plt.subplots pour créer une grille de graphiques.

La syntaxe change légèrement : on ne travaille plus directement sur plt, mais sur des axes (ax) spécifiques.

main.py
Sortie
>_ Prêt à exécuter…

Vérification

Vérification rapideon peut se reprendre

1.Un graphique d'ingénieur doit toujours porter quoi, sans exception ?

2.Mesures expérimentales et modèle théorique sur le même graphique : comment les distinguer ?

3.plt.show() placé avant plt.plot() produit quoi ?

4.À quoi servent les sous-graphiques ?

Synthèse

  • Initialisation : Toujours importer matplotlib.pyplot as plt.
  • Rigueur : Un graphique technique doit avoir un Titre, des Labels (avec unités) et une Grille.
  • Styles : Utiliser des lignes ('-') pour les modèles et des marqueurs ('o') pour les points de mesure.
  • Légende : Utiliser label="..." dans les plots, et finir par plt.legend().
  • Subplots : Utiliser les sous-graphiques pour afficher des grandeurs d'unités différentes (position vs vitesse) sur une même page.