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




Younes Derfoufi
CRMEF OUJDA

Leave a Reply