Matplotlib - Interface orientée objet

Bien qu'il soit facile de générer rapidement des graphiques avec matplotlib.pyplotmodule, l'utilisation d'une approche orientée objet est recommandée car elle donne plus de contrôle et de personnalisation de vos tracés. La plupart des fonctions sont également disponibles dansmatplotlib.axes.Axes classe.

L'idée principale derrière l'utilisation de la méthode orientée objet plus formelle est de créer des objets figure, puis d'appeler simplement des méthodes ou des attributs hors de cet objet. Cette approche permet de mieux gérer un canevas contenant plusieurs tracés.

Dans l'interface orientée objet, Pyplot n'est utilisé que pour quelques fonctions telles que la création de figures, et l'utilisateur crée et garde explicitement la trace des objets figure et axes. À ce niveau, l'utilisateur utilise Pyplot pour créer des figures, et à travers ces figures, un ou plusieurs objets axes peuvent être créés. Ces objets axes sont ensuite utilisés pour la plupart des actions de traçage.

Pour commencer, nous créons une instance de figure qui fournit un canevas vide.

fig = plt.figure()

Ajoutez maintenant des axes à la figure. leadd_axes()La méthode nécessite un objet liste de 4 éléments correspondant à gauche, bas, largeur et hauteur de la figure. Chaque nombre doit être compris entre 0 et 1 -

ax=fig.add_axes([0,0,1,1])

Définir des étiquettes pour les axes x et y ainsi que le titre -

ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')

Appelez la méthode plot () de l'objet axes.

ax.plot(x,y)

Si vous utilisez le notebook Jupyter, la directive en ligne% matplotlib doit être émise; la fonction otherwistshow () du module pyplot affiche le tracé.

Pensez à exécuter le code suivant -

from matplotlib import pyplot as plt
import numpy as np
import math
x = np.arange(0, math.pi*2, 0.05)
y = np.sin(x)
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.plot(x,y)
ax.set_title("sine wave")
ax.set_xlabel('angle')
ax.set_ylabel('sine')
plt.show()

Production

La ligne de code ci-dessus génère la sortie suivante -

Le même code lorsqu'il est exécuté dans le notebook Jupyter montre la sortie comme indiqué ci-dessous -