Le module graphique matplotlib python

1. Qu'est-ce que matplotlib ?

Matplotlib est l'un des packages Python les plus populaires utilisés pour le traçage des courbes & visualisation de données. Il s'agit d'une bibliothèque multiplateforme permettant de créer des tracés 2D à partir de données dans des tableaux. Il fournit une API orientée objet qui aide à intégrer des tracés dans des applications utilisant des kits d'outils d'interface graphique Python tels que PyQt, WxPythono tTkinter... Il peut également être utilisé dans les shells Python et IPython, les blocs-notes Jupyter et les serveurs d'applications Web.

2. Installation de matplotlib

Matplotlib est disponible sous forme de packages Python standard et peuvent être installés sur les systèmes Windows, Linux et MacOS à l'aide du gestionnaire de packages pip.

Le module matplotlib est très lié au module numpy qui exige aussi d'être installer

3. L'API Pyplot de Matplotlib

matplotlib.pyplot est une collection de fonctions de style de commande qui font fonctionner Matplotlib comme MATLAB. Chaque fonction Pyplot apporte des modifications à une figure. Par exemple, une fonction crée une figure, une zone de traçage dans une figure, trace des lignes dans une zone de traçage, décore le tracé avec des étiquettes, etc.

La plupart des utilitaires Matplotlib se trouvent dans le sous-module pyplot et sont généralement importés sous l'alias plt :

Maintenant, le package Pyplot peut être appelé plt.



4. Traçage d'un graphique à l'aide de la méthode plot()

Le module matplotlib utilise un certain nombre de fonctions pour créer un graphique mais si vous ne demandez pas de l'afficher, rien ne se passera. Il est donc nécessaire d'utiliser une méthode nommée plt.plot() pour tracer le graphique et appliquer ensuite la méthode sho() pour le visualiser.

Syntaxe de la méthode plt.plot()

  1. array_x est une liste de nombres [x_1, x_2, ..., x_n]
  2. array_y est une liste de nombres [y_1, y_2, ..., y_n] avec le même nombre de éléments.

Ensuite plt.plot (array_x, array_y) placera les points de coordonnées (x_1, y_1), (x_2, y_2), ..., (x_n, y_n) et les reliera pas à pas par un segment. Voici un exemple où nous connectons les points (2, 3), (3, 5), (4, 0) et (5, 1):

Exemple

Nous pouvons aussi modifier les listes de points dans le programme ci-dessus pour voir l'aspect de la courbe. Ainsi l'idée de dessiner une fonction sera donc de placer beaucoup de points sur la courbe que l'on veut représenter suffisamment près pour ne pas voir qu'ils sont reliés par des segments de droite.

5. Traçage des courbes à l'aide de la méthode numpy.linespace()

Au lieu de saisir manuellement les points de traçage de la courbe comme nous l'avons fait dans l'exemple précédent, nous allons utiliser cette fois-ci une méthode pratique plus moderne, c'est la méthode linespace() de la bibliothèque numpy.

Syntaxe

La fonction np.linspace (), nous permet de créer une liste de N nombres qui commencent à la valeur de début et s'arrêtent à la valeur de fin et sont répartis uniformément.
Par exemple, dessinons la fonction définie par y = sin(x) entre -6 et 6 en utilisant 100 points:

Exemple

6. paramétrage des axes à l'aide de la méthode plt.axis()

La méthode plt.axis() nous permet de parmetrer et modifier les axes du graphique. Si elle n'est pas utilisée, le choix des axes se fera automatiquement mais parfois ce choix n'est pas pertinent et il devra donc être modifié avec cette fonction.

Syntaxe

  1. Les deux premières valeurs données sont les valeurs minimale et maximale pour l'axe des x
  2. Les deux suivantes sont celles pour l'axe des y.

Exemple

7. Affichage de la grille à l'aide de la méthode plt.grid()

Si on souhaite en plus afficher une grille pour le graphique, on utilise la méthode plt.grid()

Exemple





8. Ajouter des titres et des étiquettes au graphique

Matplotlib nous permet d'illustrer nos graphiques avec des titres, des étiquettes, des textes et des annotations et ce grâce aux méthodes:

  1. plt.title(): ajoute un titre au graphique
  2. plt.title(r"Code LaTeX"): ajoute un code LaTeX au titre
  3. plt.xlabel(): ajoute une étiquette à l'axe des abscisses
  4. plt.ylabel(): ajoute une étiquette à l'axe des ordonnées
  5. plt.text(): ajoute un texte au graphique à une position souhaitée
  6. plt.text(r"Code LaTeX"): ajoute un code LaTeX au graphique à une position souhaitée
  7. plt.annotate(): ajoute une annotation à la position souhaitée

8.1 La méthode plt.title()

Comme nous l'avons déjà mentionné, cette méthode permet d'ajouter un titre au graphique
Exemple

Exemple: ajouter du code LaTeX au titre

8.2 Les méthodes xlabel() et ylabel()

Les méthodes xlabel() et ylabel() permettent d'ajouter des étiquettes aux axes:

Exemple

9. Graphiques sous forme d'histogrammes à l'aide de la méthode bar()

Les graphiques à barres ou graphique sous forme d'histogrammes peuvent être facilement retracés à partir de données telles que des séries statistiques.

Exemple de graphique en histogrammes

10. Affichage d'un nuage de points à l'aide de la méthode scatter

On souhaite parfois afficher le graphique uniquement sous forme de nuages de points non reliés par des segments, à cet effet on pourra utiliser la méthode plt.scatter(abscisses, ordonnées), où abscisses est la liste des abscisses des points que nous voulons tracer et ordonnées la liste des ordonnées.
Par exemple, si on désire placer les points (1,3), (2,2.7), (3,3.5), (4,3), (5,3) et (6,4):

Exemple

11. Tracer des fonctions plus complexes

On souhaite maintenant tracer le graphique des fonctions plus complexe à titre d'exemple: f(x) = x*sin(x**2) + 2*x. Dans ce cas, nous ne pouvons plus le faire comme précédement.

11.1 Première méthode

Une première façon de le faire est de créer manuellement la liste des y correspondant au abscisses x via la technique des listes en compréhension, c'est-à-dire de créer une liste composée des f(x) pour x dans la liste des abscisses x.
Nous pourrions donc le faire de la façon suivante:

11.2 Deuxième méthode

Une deuxième méthode consiste à utiliser les fonctions classiques modifiées contenues dans la bibliothèque numpy en utilisant la syntaxe np.function():




12. Liste des méthodes associées à la bibliothèque matplotlib

Matplotlib est une bibliothèque populaire en Python utilisée pour la création de graphiques et de visualisations dotée de nombreuses méthodes permettant d'améliorer l'experience utilisateur. Voici une liste de méthodes et de fonctions couramment utilisées dans Matplotlib :

12.1 Création d'une figure et d'un axe

  1. plt.figure(): Crée une nouvelle figure.
  2. plt.subplots(): Crée une figure et un ou plusieurs axes à l'intérieur.

12.2 Graphiques de base

  1. plt.plot(): Trace un graphique linéaire ou un nuage de points.
  2. plt.scatter(): Crée un nuage de points.
  3. plt.bar(): Trace un graphique en barres.
  4. plt.hist(): Trace un histogramme.
  5. plt.boxplot(): Trace un diagramme en boîte.

12.3 Personnalisation du graphique

  1. plt.xlabel(), plt.ylabel(): Définit les étiquettes des axes x et y.
  2. plt.title(): Définit le titre du graphique.
  3. plt.legend(): Ajoute une légende.
  4. plt.grid(): Ajoute ou supprime la grille.
  5. plt.xticks(), plt.yticks(): Définit les emplacements et les étiquettes des graduations des axes.

12.4 Personnalisation des styles

  1. plt.style.use(): Applique un style prédéfini aux graphiques.
  2. plt.colors(): Gère les couleurs dans les graphiques.

12.5 Graphiques avancés

  1. plt.contour(), plt.contourf(): Trace des graphiques de contour.
  2. plt.imshow(): Affiche une image.
  3. plt.pie(): Trace un graphique en secteurs.
  4. plt.quiver(): Trace un graphique de vecteurs.

12.6 Personnalisation avancée

  1. plt.subplots_adjust(): Ajuste la disposition des sous-graphiques.
  2. plt.tight_layout(): Ajuste automatiquement les espacements pour éviter les chevauchements.

12.7 Sauvegarde et affichage

  1. plt.show(): Affiche le graphique.
  2. plt.savefig(): Enregistre le graphique dans un fichier.

12.8 Gestion des axes

  1. ax.set_xlim(), ax.set_ylim(): Définit les limites des axes x et y.
  2. ax.set_xscale(), ax.set_yscale(): Définit l'échelle des axes x et y.

12.9 Annotations et textes

  1. ax.text(): Ajoute un texte à un emplacement spécifié sur le graphique.
  2. ax.annotate(): Ajoute une annotation avec une flèche sur le graphique.
  3. ax.legend(): Ajoute une légende à un axe spécifique.

12.10 Personnalisation des lignes et des marqueurs

  1. plt.plot(..., linestyle='-', marker='o'): Personnalise le style de ligne et de marqueur.

12.11 Personnalisation des couleurs et des palettes

  1. plt.color_palette(): Définit une palette de couleurs personnalisée.
  2. plt.colormaps(): Liste des cartes de couleurs disponibles.

12.12 Personnalisation des bordures et des arrière-plans

  1. ax.spines['top'].set_visible(False): Cache les bords supérieurs de l'axe.
  2. ax.set_facecolor(): Définit la couleur de fond de l'axe.

12.13 Utilisation de sous-graphiques

  1. plt.subplot2grid(): Crée des sous-graphiques dans une grille personnalisée.
  2. gridspec.GridSpec(): Crée des sous-graphiques avec une mise en page complexe.

12.14 Personnalisation des échelles des axes

  1. ax.set_xscale('log'): Définit l'échelle logarithmique pour l'axe x.

12.15 Graphiques 3D

  1. from mpl_toolkits.mplot3d import Axes3D: Importe les outils pour les graphiques 3D.
  2. ax = fig.add_subplot(111, projection='3d'): Crée un axe pour les graphiques 3D.
  3. ax.plot_surface(), ax.scatter(), ax.contour(): Tracer des graphiques 3D.

12.16 Graphiques interactifs

  1. plt.gcf().canvas.mpl_connect(): Gère les événements interactifs.
  2. La bibliothèque matplotlib.animation: permet de créer des animations à partir de graphiques.
  3. La bibliothèque mplcursors: permet d'ajouter des étiquettes interactives aux points de données.

12.17 Personnalisation des légendes & latex

  1. ax.legend(handles, labels): Contrôle manuellement les éléments de la légende.
  2. Vous pouvez utiliser la syntaxe LaTeX: pour les étiquettes en encadrant le texte avec des signes dollar ($).

12.18 Visualisation de données géospatiales

  1. La bibliothèque basemap: permet de créer des cartes géographiques.

12.19 Visualisation de données financières

  1. La bibliothèque mplfinance : propose des outils pour visualiser des données financières.

Younes Derfoufi
CRMEF OUJDA

Leave a Reply