Najah.
Mon plan de révision⚡ Défi flash

Informatique · Classes prépa (CPGE) — 1ère année — ECS

Visualisation de données avec Matplotlib

Le cours expliqué simplement, les questions que tous les élèves se posent et des exercices type examen national. Programme marocain, gratuit.

📘 Fiche de cours

L'essentiel du cours

1. Introduction à Matplotlib

La bibliothèque Matplotlib, et plus précisément son module pyplot, est l'outil standard en Python pour la visualisation de données. On l'importe généralement sous l'alias plt :

import matplotlib.pyplot as plt

2. Les types de graphiques de base

  • Courbes (plt.plot) : Pour représenter une fonction $y = f(x)$ ou l'évolution d'une variable.
  • Nuages de points (plt.scatter) : Pour observer la corrélation entre deux variables.
  • Diagrammes en bâtons (plt.bar) : Pour comparer des catégories.
  • Histogrammes (plt.hist) : Pour visualiser la distribution d'une série statistique.

3. Personnalisation du graphique

Pour qu'un graphique soit exploitable (style examen), il doit comporter :

  • Un titre : plt.title("Mon Titre")
  • Des étiquettes d'axes : plt.xlabel("Axe X") et plt.ylabel("Axe Y")
  • Une légende : plt.legend() (nécessite l'argument label dans le plot).
  • Une grille : plt.grid(True)
  • Affichage : plt.show()

4. Styles et Formats

La fonction plt.plot(x, y, format) accepte une chaîne de caractères pour le style :

  • Couleurs : 'r' (rouge), 'b' (bleu), 'g' (vert).
  • Marqueurs : 'o' (cercle), '+' (plus), 's' (carré).
  • Lignes : '-' (continu), '--' (pointillés).

Méthodes à maîtriser

  • Tracer une fonction mathématique : Utiliser numpy.linspace pour créer un vecteur $x$, calculer $y$, puis utiliser plt.plot(x, y).
  • Superposer des graphiques : Appeler plusieurs fois plt.plot() avant plt.show().
  • Gérer les fenêtres : Utiliser plt.figure() pour créer une nouvelle fenêtre ou plt.subplot(nb_lignes, nb_cols, index) pour diviser une fenêtre.

Exemples corrigés

Exemple 1 : Tracer $f(x) = \sin(x)$

import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)
plt.plot(x, y, 'r--', label='sinus')
plt.title('Fonction Sinus')
plt.legend()
plt.show()

Erreurs fréquentes

  • Oublier plt.show() : Le graphique est créé en mémoire mais ne s'affiche pas.
  • Dimensions incompatibles : Passer des listes $X$ et $Y$ de tailles différentes à plt.plot().
  • Inversion des axes : Confondre plt.xlabel (horizontal) et plt.ylabel (vertical).
  • Oublier plt.legend() : Les labels définis dans plot ne s'afficheront pas.

🌉 Jisr : les mots du chapitre FR ⇄ AR

Tu as appris les sciences en arabe ? Touche un mot pour voir sa traduction et une explication en darija.

La question que tu n'oses pas poser en classe ? Pose-la à UstadZéro jugement, même en darija, même à minuit. Il t'explique pas à pas et corrige ta démarche. Gratuit.

Défi flash : 4 questions

Sans compte

🎯 Visualisation de données avec Matplotlib

1/4

Quelle commande permet d'importer correctement le module de visualisation ?

❓ Questions fréquentes

Comment installer et importer Matplotlib dans mon script ?
  1. Pour l'installation (hors examen), on utilise pip install matplotlib.
  2. Pour l'importation dans votre code Python, la convention officielle est : import matplotlib.pyplot as plt.
  3. Si vous utilisez des fonctions mathématiques pour vos données, n'oubliez pas d'importer aussi NumPy : import numpy as np.

💡 À retenir : L'alias plt est indispensable pour respecter les standards de rédaction.

Kifach n-bdal l-loun dyal l-khat f-l-mibyane ?

Pour changer la couleur, vous avez deux options principales dans la fonction plt.plot() :

  1. Utiliser l'argument nommé color : plt.plot(x, y, color='red').
  2. Utiliser le code de formatage rapide : plt.plot(x, y, 'r') pour rouge, 'b' pour bleu, 'g' pour vert, 'k' pour noir.

💡 À retenir : Le code couleur est souvent plus rapide à écrire lors d'un examen.

Quelle est la différence entre plt.plot() et plt.scatter() ?
  1. plt.plot() relie les points par des segments de droite par défaut. On l'utilise pour des fonctions continues ou des séries temporelles.
  2. plt.scatter() affiche uniquement les points (nuage de points) sans les relier. On l'utilise pour analyser la dispersion ou la corrélation entre deux variables.

💡 À retenir : Utilisez scatter pour des données statistiques brutes et plot pour des modèles mathématiques.

Chno hiya plt.subplot() o kifach kan-khdem biha ?

plt.subplot(lignes, colonnes, index) permet d'afficher plusieurs petits graphiques dans une seule fenêtre.

  1. lignes et colonnes définissent la grille (ex: 2, 1 pour deux graphiques l'un sur l'autre).
  2. index est le numéro du graphique actuel (commence à 1).

💡 À retenir : C'est l'outil idéal pour comparer deux séries de données avec des échelles différentes.

Kifach n-zid smya l-kol mihwar (les axes) ?

Il faut utiliser deux fonctions spécifiques avant d'appeler plt.show() :

  1. plt.xlabel("Nom de l'axe X") pour l'axe horizontal (abscisses).
  2. plt.ylabel("Nom de l'axe Y") pour l'axe vertical (ordonnées).

💡 À retenir : Un graphique sans nom d'axes est considéré comme incomplet à l'examen.

Comment afficher une légende si j'ai plusieurs courbes ?
  1. Dans chaque fonction plt.plot(), ajoutez l'argument label="Nom de la courbe".
  2. Appelez impérativement la fonction plt.legend() avant plt.show().

💡 À retenir : Sans l'appel à plt.legend(), les étiquettes (labels) ne seront pas visibles.

3lach matat-tl3ch liya l-image fach kan-lancer l-programme ?

C'est souvent dû à l'oubli de la commande finale. En Python standard, le graphique est construit en arrière-plan. Pour l'afficher réellement à l'écran, vous devez impérativement terminer votre bloc de code par : plt.show().

💡 À retenir : plt.show() est la commande qui "ouvre" la fenêtre du graphique.

Comment tracer un histogramme pour une série de notes ?

Utilisez la fonction plt.hist(donnees, bins=nombre).

  1. donnees est votre liste de notes.
  2. bins définit le nombre de colonnes (intervalles).

💡 À retenir : L'histogramme est utilisé pour des variables continues découpées en classes.

Peut-on changer le style de la ligne (pointillés, etc.) ?

Oui, dans plt.plot(), vous pouvez ajouter un symbole de style :

  1. '-' : ligne continue (par défaut).
  2. '--' : tirets.
  3. ':' : pointillés.
  4. '-.' : alternance tiret-point.

💡 À retenir : On peut combiner couleur et style, par exemple 'r--' pour une ligne rouge en tirets.

Comment fixer les limites des axes (ex: de 0 à 100) ?

Utilisez les fonctions :

  1. plt.xlim(min, max) pour l'axe des abscisses.
  2. plt.ylim(min, max) pour l'axe des ordonnées.

💡 À retenir : Cela permet de "zoomer" sur une partie précise du graphique.

Comment ajouter une grille de lecture ?

Il suffit d'ajouter la commande plt.grid(True) avant plt.show(). Vous pouvez aussi personnaliser la grille avec des arguments comme linestyle ou linewidth.

💡 À retenir : La grille facilite la lecture des coordonnées des points sur le papier millimétré virtuel.

Est-il possible d'enregistrer le graphique sous forme d'image ?

Oui, utilisez plt.savefig("nom_fichier.png"). Cette commande doit être placée avant plt.show(), car show() réinitialise parfois la figure après fermeture.

💡 À retenir : Formats supportés : PNG, PDF, SVG, JPG.

✍️ Exercices type examen national

Exercice 1

Énoncé : Analyse de la fonction de profit Une entreprise marocaine de textile modélise son profit mensuel (en milliers de DH) par la fonction $P(x) = -2x^2 + 40x - 100$, où $x$ représente le prix de vente d'un article en DH ($x \in [5, 15]$).

  1. Écrire un script Python utilisant numpy et matplotlib pour : a) Créer un vecteur $X$ de 50 points entre 5 et 15. b) Calculer le vecteur $Y$ correspondant au profit. c) Tracer la courbe du profit en bleu avec une ligne continue. d) Ajouter le titre "Évolution du Profit", les labels des axes et une grille.
  2. Ajouter sur le même graphique un point rouge (marqueur 'o') représentant le maximum de la fonction (sommet de la parabole). On rappelle que le sommet d'une parabole $ax^2+bx+c$ a pour abscisse $x_s = -b/(2a)$.
Voir la correction détaillée : inscription gratuite

Exercice 2

Énoncé : Comparaison de performances On dispose des ventes trimestrielles de deux agences (A et B) sur une année :

  • Agence A : 150, 200, 180, 250 (millions de centimes)
  • Agence B : 120, 220, 210, 230 (millions de centimes)
  1. Représenter ces données par un diagramme en bâtons (bar chart) côte à côte.
  2. Les trimestres seront affichés sur l'axe des abscisses avec les étiquettes : 'T1', 'T2', 'T3', 'T4'.
  3. Utiliser une largeur de barre de 0.35.
Voir la correction détaillée : inscription gratuite

Exercice 3

Énoncé : Analyse statistique (Style BAC) Un professeur de CPGE souhaite visualiser la répartition des notes d'un DS. Les notes sont stockées dans une liste : notes = [12, 8, 15, 10, 7, 14, 18, 5, 11, 13, 9, 12, 16, 10, 8].

  1. Tracer l'histogramme des notes avec 5 classes (bins).
  2. Ajouter une ligne horizontale rouge représentant la moyenne de la classe.
  3. Configurer l'axe des ordonnées pour qu'il commence à 0 et se termine à 6.
Voir la correction détaillée : inscription gratuite

Un prof de Informatique pour aller plus loin

Les cours du soir avec des profs vérifiés arrivent : inscris-toi pour être prévenu(e) en premier.

Être prévenu(e) gratuitement

Autres chapitres de Informatique