Plusieurs graphiques sur une même page

SyntaxeCommande 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}\)

1
import numpy as np
2
from matplotlib import pyplot as plt
3
x = np.arange(-np.pi, np.pi, 0.1)
4
y = np.sin(x)
5
y2 = np.cos(2*x)
6

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.

1
# préparation de la fenêtre graphique
2
# contenant deux système d'axe ( une lignes par deux colonnes)
3
fig, ax = plt.subplots(nrows=1, ncols=2)
4

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.

1
# tracé de la courbe y fonction de x avec un symbole + sur chaque point
2
ax[0].plot(x, y, marker='+', color='red')
3
ax[0].set_xlabel('temps(s)')
4
ax[0].set_ylabel('tension(V)')
5
ax[0].set_title('Mon premier graphique avec matplot')
6
#tracer d'une grille
7
ax[0].grid(True)
8
ax[0].legend(['y=sin(x)'])
9
#ajout d'un titre pour les axes x et y et un titre au graphique
10
ax[1].plot(x, y2, marker='+', color='blue')
11
ax[1].set(xlabel='temps(s)', ylabel='tension(V)', title='Mon premier graphique avec matplot')
12
#ajout d'une légende pour identifier la courbe
13
ax[1].legend(['y=cos(2x)'], loc='lower right')
14
ax[1].grid(True)
15
#les graphiques sont tracés, on l'affiche sur l'écran
16
plt.show()
17

Le résultat du programme précédent.

Usage de subplot