Plusieurs graphiques sur une même page
Syntaxe : Commande subplot
Plutôt que de tracer plusieurs courbes sur le même graphique, on peut tracer plusieurs courbes dans la même fenêtre dans des systèmes d'axe différents (des repères).
Par exemple en reprenant l'exemple précédent on va tracer les deux courbes dans la même fenêtre en utilisant la commande plt.subplots. La commande fig, ax =plt.subplots(nrows, ncols)
permet de diviser la page en nrows
lignes et nrows
colonnes de surface identique et de tracer la courbe dans l'élément p. Les éléments sont numérotés de la gauche vers la droite et du haut vers le bas.
Le programme suivant illustre l'usage de plt.subplots.
Après avoir importé les librairies, on calcule 3 tableaux numpy, le premier nommé x contient les valeurs comprises entre \(-\pi\) et \(+\pi\) par pas de 0., le second nommé y contient les valeurs de sin(x) et le troisième, nommé y, contient les valeurs de cos(2x). \(\frac1{2}\)
import numpy as np
from matplotlib import pyplot as plt
x = np.arange(-np.pi, np.pi, 0.1)
y = np.sin(x)
y2 = np.cos(2*x)
L'appel à plt.subplots(nrows=1, ncols=2) donne comme résultat fig et ax où fig est la fenêtre et ax un tableau de système d'axe (ou repère) graphique. Dans cet appel, ax est un tableau de deux valeurs ax[0] pour le premier repère et ax[1] pour le second repère.
# préparation de la fenêtre graphique
# contenant deux système d'axe ( une lignes par deux colonnes)
fig, ax = plt.subplots(nrows=1, ncols=2)
Dans ce qui suit, les courbes sont tracées dans ax[0]
(le repère à gauche de la fenêtre) et ax[1]
pour le repère à droite.
# tracé de la courbe y fonction de x avec un symbole + sur chaque point
ax[0].plot(x, y, marker='+', color='red')
ax[0].set_xlabel('temps(s)')
ax[0].set_ylabel('tension(V)')
ax[0].set_title('Mon premier graphique avec matplot')
#tracer d'une grille
ax[0].grid(True)
ax[0].legend(['y=sin(x)'])
#ajout d'un titre pour les axes x et y et un titre au graphique
ax[1].plot(x, y2, marker='+', color='blue')
ax[1].set(xlabel='temps(s)', ylabel='tension(V)', title='Mon premier graphique avec matplot')
#ajout d'une légende pour identifier la courbe
ax[1].legend(['y=cos(2x)'], loc='lower right')
ax[1].grid(True)
#les graphiques sont tracés, on l'affiche sur l'écran
plt.show()