Tutoriel python: réaliser des graphiques avec pyplot

Table des matières

Introduction

  1. Import du module pyplot
  2. Plot, show et close
  3. Paramètres supplémentaires

3.1. Titre et légende

3.2. Couleur du tracé

3.3. Style de ligne

3.4. Axe des abscisses et des ordonnées

  1. Exercices
  2. Correction

Conclusion

Introduction

D’une manière générale, pyplot constitue l’un des principaux modules de la bibliothèque matplotlib qui est utilisée pour représenter des graphiques en 2D.  Ce module regroupe plusieurs fonctions permettant de créer des graphiques et de les personnaliser.

1. Import du module pyplot

Pour importer le module pyplot, il suffit de mettre la ligne de code suivante au début du programme.

Habituellement ce module est importé sous l’alias plt.

2. Plot, show et close

Les trois premières commandes à connaitre dans le module pyplot sont : plotshow et close.

  • Plot(X,Y) : permet de tracer une courbe représentant Y en fonction de X.
  • Show(): permet d’afficher un graphique dans une fenêtre. Par défaut cette dernière est vide. Cette fonction est équivalente à la fonction print.
  • Close() : sert à fermer la fenêtre qui s’ouvre avec la commande show.

Exemple 1 :

Dans ce premier exemple, nous allons juste exécuter les trois commandes qu’on vient d’introduire.

Remarquons qu’on a affiché un graphe vide, vu qu’on a laissé les arguments de la fonction plot() vides.

  • Code :

plt.plot()
plt.show()
plt.close()

  • Résultat de l’exécution :

Exemple 2 :

Dans cet exemple nous allons passer en argument de la fonction plot() une seule liste qui contient les ordonnées. Quant aux abscisses, puisqu’elles ne sont pas passées en argument, elles seront automatiquement générées et cela de zéro à len( liste ) – 1.

  • Code :

plt.plot( [1,2,3] )
plt.show()
plt.close()

  • Résultat de l’exécution :

Ce code nous a permis d’obtenir la droite qui passe par les points : A(0,1), B(1,2) et C(2,3).

Remarque :

Pyplot nous donne la possibilité d’enregistrer un graphique dans un fichier à travers la fonction savefig() qui prend en paramètre le chemin absolu ou relatif de l’emplacement où il faut l’enregistrer.

Exemple 3 :

Dans cet exemple on met le chemin absolu de l’emplacement où on veut enregistrer le graphe sous format PNG. Il est aussi possible de l’enregistrer sous format PDF.

  • Code :

plt.plot( [1,2,3] )
plt.savefig("C://Users//LENOVO//Desktop//coursGratuit//graphique1.png")

  • Résultat de l’exécution :

Jusqu’à présent pour la fonction plot() nous lui avons passé qu’une seule liste en paramètre, dans l’exemple suivant nous allons lui mettre deux listes. La première liste correspondra à la liste des abscisses quand à la seconde elle contiendra leurs ordonnées.

Exemple 4:

Le code suivant affiche le même tracé de l’exemple 2. Dans cet exemple nous avons spécifié en paramètre la liste des abscisses ainsi que la liste des ordonnées.

  • Code :

plt.plot([0,1,2],[1,2,3])
plt.show()
plt.close()

  • Résultat de l’exécution :

Exemple 5 :

Essayons de dessiner un triangle ABC avec A (0,0), B (1,1) et C (-1,1).

  • Code :

X = [0,1,-1,0]
Y = [0,1,1,0]
plt.plot(X,Y)
plt.show()
plt.close()

  • Résultat de l’exécution :

Remarque :

Si au lieu d’utiliser les listes X = [ 0, 1, -1, 0 ] et Y = [ 0, 1, 1, 0 ]  on a utilisé les listes X = [ 0, 1, -1 ] et  Y = [ 0,1,1 ] on aurait eu un triangle ouvert comme l’illustre le résultat de l’exécution suivante :

Puisque chaque point est relié au précédent et pour avoir un triangle, il faut relier le dernier point au premier.

Exemple 6 :

Il est possible de passer en paramètre à plot() plusieurs listes pour avoir plusieurs tracés de différentes couleurs en une seule figure.

  • Code :

X = [0, 1, -1]
Y = [0, 1, 1]
I = [0, 1, 0]
J = [1, 2, 0]
L = [2, 1, 0]
K = [1, 2, 0]
plt.plot(X, Y, I, J, L, K)
plt.show()
plt.close()

  • Résultat de l’exécution :

Le même résultat est obtenu en utilisant trois fois la commande plot() avant de faire appel à la commande show().

Exemple 7 :

Essayons de dessiner un carré ABCD avec A (1,1), B (2,1), C (2,2) et D (1,2).

Idem au triangle, Il ne faut pas oublier de relier le dernier point au premier pour fermer le carré.

  • Code :

X = [1, 2, 2, 1, 1]
Y = [1, 1, 2, 2, 1]
plt.plot(X, Y)
plt.show()
plt.close()

  • Résultat de l’exécution :

3. Paramètres supplémentaires

3.1. Titre et légende

Dans cette partie de ce tutoriel nous allons parcourir les paramètres permettant de personnaliser les graphiques.

Dans un premier temps, si on veut ajouter un titre au graphique, il suffit de faire appel à la commande title() qui prend en paramètre une chaîne de caractères.

Pour légender un graphique, c’est-à-dire donner un nom à la courbe, il suffit d’utiliser le paramètre label. Et ajouter la commande legend() juste avant la commande show().

Exemple 8:

Reprenons le graphique où on a dessiné un carré. On souhaite lui donner un nom et une légende, alors on procède ainsi :

  • Code :

X = [1, 2, 2, 1, 1]
Y = [1, 1, 2, 2, 1]
plt.plot(X, Y, label = 'gffd')
plt.title("mon premier carré")
plt.legend( )
plt.show()
plt.close()

  • Résultat de l’exécution :

3.2. Couleur du tracé

Cependant si on veut changer la couleur d’un tracé, on utilise le paramètre color. Celui-ci peut être écrit sous les formes suivantes :

  • Chaîne de caractères représentant le nom (en anglais) ou l’abréviation d’une couleur primaire, du noir ou du blanc. C’est-à-dire : r ou redg ou greenb ou bluec ou cyanm ou magentay ou yellowk ou black,w ou white.
  • Tuple représentant les valeurs RGB de la couleur divisé par 255 (pour des valeurs dans l’intervalle 0 et 1).
  • Chaîne de caractères représentant la couleur en notation hexadécimale.
  • Chaîne de caractères représentant l’intensité en gris.

Exemple 9:

Nous avons repris l’exemple précèdent et ajouter le paramètre color = 'red' pour avoir le tracé du carré en rouge.

  • Code :

X = [1, 2, 2, 1, 1]
Y = [1, 1, 2, 2, 1]
plt.plot(X, Y, label = 'gffd', color = 'red')
plt.title("mon premier carré")
plt.legend()
plt.show()
plt.close()

  • Résultat de l’exécution :

3.3. Style de ligne

Le style de ligne par défaut est « - » qui correspond à une ligne pleine. On peut changer de style de ligne en passant en paramètre de la commande plot() une chaîne de caractères. Voici quelques caractères acceptés :

  • « -- » correspond à une ligne en pointillés.
  • « : » correspond à une ligne formée de points.
  • « -. » correspond à une ligne formée d’une suite de tirets et de points.

On peut également ajouter des marqueurs pour chaque point du graphique à l’aide du paramètre marker qui est aussi une chaîne de caractères.

Exemple 10 :

Toujours avec le tracé du carré, nous avons juste ajouté la chaîne de caractères qui correspond à une ligne formée de points et de tirets et on a marqué les quatre points de notre graphique par des étoiles.

  • Code :

X = [1, 2, 2, 1, 1]
Y = [1, 1, 2, 2, 1]
plt.plot(X, Y, "-.", marker = "*", label = 'gffd', color = 'red')
plt.title ("mon premier carré")
plt.legend ()
plt.show()
plt.close()

  • Résultat de l’exécution :

3.4. Axe des abscisses et des ordonnées

On peut donner une légende à chaque axe du graphe en utilisant les deux paramètres suivants qui sont des chaînes de caractères:

  • xlabel : permet de nommer l’axe des abscisses.
  • ylabel : permet de nommer l’axe des ordonnées.

Il existe aussi une commande axis() permettant de cadrer les axes.

Exemple 11 :

Reprenons l’exemple du carré, sur le graphique il n’apparaît pas comme un carré. Ceci est dû au fait que le repère choisi n’est pas orthonormé, pour le rendre ainsi on va faire appel à la commande axis() qu’on lui passera en paramètre la chaînes de caractères « equal ».

On a aussi fait appel aux commandes xlabel et ylabel.

  • Code :

X = [1, 2, 2, 1, 1]
Y = [1, 1, 2, 2, 1]
plt.plot(X, Y, color = 'red')
plt.title ("mon premier carré")
plt.axis('equal')
plt.xlabel('abscisses')
plt.ylabel('ordonnées')
plt.show()
plt.close()

  • Résultat de l’exécution :

4. Exercices 

Exercice 1 :

Écrire un programme qui affiche un graphique sous la forme d’une maison avec une ligne formée de points et de couleur verte. Il affiche également le titre du graphique « la petite maison verte ».

Exercice 2 :

Écrire un programme qui dessine la courbe de la fonction cosinus en étoile avec la couleur dont le code est le suivant : DEC7EF.

Exercice 3 :

Écrire un programme qui dessine la fonction inverse x->1/x sur l’intervalle [-1,1].

Exercice 4 :

  1. Écrire une fonction dessinerGraphpermettant de dessiner un graphique et qui prend en paramètre les éléments suivants :
  • La fonction à dessiner.
  • L’intervalle sur lequel on va dessiner la fonction.
  • Le pas.
  1. Appliquer la fonction dessinerGraphpour la fonction cosinus et la fonction inverse sur un intervalle de votre choix.
  2. Personnaliser la fonction dessinerGraph pour afficher des graphes en étoile.

5. Correction 

Exercice 1 :

Pour cet exercice l’astuce est simple, il suffit de tracer un carré qui symbolise la maison ensuite un triangle pour son toit et un autre carré pour la porte.

  • Code :

X = [1, 2, 2, 1, 1]
Y = [1, 1, 2, 2, 1]
A = [1.5, 1, 2, 1.5]
B = [3, 2, 2, 3]
C = [1.25, 1.75, 1.75, 1.25, 1.25]
D = [1,1, 1.5, 1.5, 1]
plt.plot(X, Y,':', A, B, ':', C, D, ':', color = 'green')
plt.title('la petite maison verte ')
plt.axis('equal')
plt.show()
plt.close()

  • Résultat de l’exécution :

Exercice 2 :

Tout d’abord on importe la fonction cosinus et pi du module math de Python.  

Pour approcher la courbe de la fonction cosinus, il faut relier des points très proches l’un de l’autre appartenant à la courbe. Alors on a subdivisé l’intervalle en 101 points avec un pas qui est égal à 2*pi/100.

  • Code :

from math import cos, pi

from math import cos, pi
X = []
Y = []
pas = 2*pi/100
abscisse_depart = 0
for i in range(0, 101):
X.append(abscisse_depart)
Y.append(cos(abscisse_depart))
abscisse_depart += pas
plt.plot( X, Y, '*', color = '#DEC7EF')
plt.title('Fonction cosinus')
plt.show()
plt.close()

  • Résultat de l’exécution :

Exercice 3 :

Pour cet exercice nous avons dessiné la fonction inverse en deux temps, car elle n’est pas définie en 0. Cette fonction est fortement divergente au voisinage de 0. Donc on a dessiné la fonction avant 0 et une après 0.

  • Code :

a = 1 / 1000
b = 1
X = []
Y = []
X1 = []
Y1 = []
pas = (b - a) / 200
abscisse = a
for i in range (0, 201):
X.append(abscisse)
Y.append(1 / abscisse)
X1.append(-abscisse)
Y1.append(-1 / abscisse)
abscisse += pas
plt.axis([-1, 1, -10, 10 ])
plt.plot(X, Y, X1, Y1, color = 'red')
plt.title( 'Fonction inverse')
plt.show()
plt.close()

  • Résultat de l’exécution :

Exercice 4 :

  • Code :

def dessinerGraph(f, a, b, n):

def dessinerGraph(f, a, b, n):
X = []
Y = []
abscisse = a
pas = (b - a)/ n
for k in range(0, n + 1):
X.append(abscisse)
Y.append(f(abscisse))
abscisse += pas
plt.plot(X, Y)

  • Résultat de l’exécution :

Application sur la fonction cosinus :

  • Code :

dessinerGraph( cos, 0, 2*pi, 100)
plt.title('Fonction cosinus')
plt.show()
plt.close()

Résultat de l’exécution :

Application sur la fonction inverse :

  • Code :

def inverse(x):
return 1/x
dessinerGraph( inverse, 1, 15, 200)
plt.title("Fonction inverse dans l'intervalle [1,15]" )
plt.show()
plt.close()

  • Résultat de l’exécution :

Conclusion

Dans ce tutoriel nous avons introduit le module pyplot de la bibliothèque matplotlib. Nous avons vu les trois principales commandes à savoir : plot, show et close. Nous avons aussi vu comment personnaliser un graphique en lui donnant un titre, une légende, des noms pour les axes ainsi que comment changer le type de ligne du tracé.

En effet, ce module nous donne la possibilité de faire beaucoup de choses surtout la bibliothèque  matplotlib qui permet encore plus de dessiner des histogrammes et même des graphes en 3D.

Article publié le 06 Octobre 2020par Imane BENHMIDOU