Comment créer des jolis graphiques avec la fonction subplots()

Les subplots

Les subplots servent créer des courbes goupées en plusieurs fenêtres. Cette fonctionnalité de pyplot est très utile, notamment quand on souhaite analyser plusieurs paramètres simultanément. Pour montrer comment utiliser cette fonctionnalité, je travaillerai sur un cas pratique très simple, je vais tout simplement tracer les représentations graphiques de quelques fonctions mathématiques de référence, à savoir :

  • Les fonctions trigonométriques : cosinus, sinus et tangente
  • Une fonction polynomiale de degré 3
  • La fonction racine carée
  • La fonction inverse

Le module math

Pour pouvoir utiliser des fonctions mathématiques comme celle citées ci-dessus, il faut importer le module mathématique. Ainsi on pourrait utiliser un grand nombre d’outils mathématiques.

Pour importer le module math il suffit de taper la ligne de commande suivante :

import math

Les fonctions mathématiques seront appelées comme des méthodes.

La première partie du code, consiste à créer les fonctions, et pour ce faire, je commence par créer d’abord une liste des abscisses X. On prendra X entre [-100 ; +100].

Voici les lignes de code qui permettent calculer les fonctions qu’on va tracer :

Y1 = [math.sin(x) for x in X]
Y2 = [math.cos(x) for x in X]
Y3 = [math.tan(x) for x in X]
Y4 = [math.sqrt(x) for x in X if x>=0]
Y5 = [1/x for x in X]
Y6 = [x + x**2 + x**3 for x in X]

J’attire votre attention particulièrement sur la ligne qui permet de calculer la racine carrée de x (la fonction Y4). Comme la racine carrée ne peut être calculée dans le domaine du réel pour des x négatifs, il faut donc exclure toutes les valeurs négatives de la liste X. et pour cela j’ai utilisé la boucle for imbriquée dans la création de la liste, et j’ai ajouté une condition avec l’instruction if qui ne prend que les x.

Créations des subplots

Avec la fonction subplots() on peut créer plusieurs graphiques dans des multiples fenêtres imbriquées dans une seule figure. Cette fonction prend 3 arguments, ces arguments permettent de configurer la zone de traçage. Le paramétrage de cette fonction ressemble à la création d’un tableau composé de lignes et de colonnes. Voici le rôle de chaque argument de cette fonction :

  • Le premier argument sert à donner le nombre de ligne
  • Le deuxième argument sert à donner le nombre de colonnes
  • Et Le dernier argument donne la position à attribuer au graphique dans la figure.

Dans le cadre de cet exemple, je vais créer une zone de traçage de trois lignes et 2 colonnes. Voici le code qui permet de tracer cette configuration :

# le graphe Y1
plt.subplot(3, 2, 1)
plt.plot(X,Y1)

# le graphe Y2
plt.subplot(3, 2, 2)
plt.plot(X,Y2)

# le graphe Y3
plt.subplot(3, 2, 3)
plt.plot(X,Y3)

# le graphe Y4
plt.subplot(3, 2, 4)
X4 = [x for x in X if x>=0]
plt.plot(X4,Y4)

# le graphe Y5
plt.subplot(3, 2, 5)
X5 = [x for x in X if x!=0]
plt.plot(X5,Y5)

# le graphe Y6
plt.subplot(3, 2, 6)
plt.plot(X,Y6)

plt.show()

Et la figure que renvoie ce script est le suivant :

Comme on peut le voir, il n’y a que des courbes sans titres ni aucune information. Il faut savoir qu’il est possible d’utiliser tous les paramétrages expliqués précédemment dans les représentations graphiques

Ajout d’une légende

Pour ajouter une légende, on utilise la méthode .legend(), le premier argument de cette méthode doit être une liste dont la longueur correspond au nombre de graphique dans la figure ou la fenêtre du subplots. 

Il est possible de choisir la position de l’emplacement de la légende. Par défaut la légende est position dans un endroit considéré comme le meilleur endroit par le programme, mais parfois on préfère changer cet endroit. Voici un tableau qui regroupe la syntaxe des emplacements de la légende :

Nom des emplacementsCode des emplacement
‘best’0
‘upper right’1
‘upper left’2
‘lower left’3
‘lower right’4
‘right’5
‘center left’6
‘center right’7
‘lower center’8
‘upper center’9
‘center’10

Pour plus de paramètres pour la légende, consultez la page suivante : paramétrage des légendes

Exercice pratique :

Proposez un code qui permet de tracer des graphiques paramétrés comme sur la figure ci-dessous :

Si vous avez aimé l'article vous êtes libre de le partager :)

Laisser un commentaire