Compléments et usages des graphiques

De nombreux guides utilisent d'autres fonctions pour afficher proprement des graphiques, voici quelques compléments pour mieux les comprendre.

Pour le moment, nous avons appris à tracer un graphique via un appel du genre :

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(10) #Les données vont de 0 à 10
plt.plot(x,x**2) #On trace x² en fonction de x
plt.show() #On affiche le graphique

Figure

Cette partie est très simple mais permet de mieux comprendre le fonctionnement de matplotlib.pyplot

Dans certains code, on peut voir une ligne supplémentaire :

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(10) #Les données vont de 0 à 10
plt.figure("Graphique 1")
plt.plot(x,x**2) #On trace x² en fonction de x
plt.show() #On affiche le graphique

La différence est subtile : elle se trouve dans le titre de la fenêtre.

On retrouvera également ce nom lors de l'enregistrement d'un fichier.

Cette ligne ne sert d'un premier abord pas à grand chose, elle permet juste de dire "Dans une fenêtre, fait un graphique".

Elle a cependant une utilité importante, c'est qu'elle permet de construire plusieurs graphiques, et de les afficher ensuite, lors de l'appel plt.show()

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(10) #Les données vont de 0 à 10
plt.plot(x,x**2) #On trace x² en fonction de x
plt.plot(x,x**3) #On trace x^3 en fonction de x
plt.show() #On affiche le graphique
Les deux courbes sont sur le même graphique

En résumé, figure configure la fenêtre d'affichage.

Attribuer une variable à une fenetre, à un graphique...

Il est parfois plus simpler d'attribuer une variable à un élement d'une représentation (fenêtre, graphique, sous-graphique...) et de le manipuler ensuite tel un objet.

Ainsi on peut attribuer une variable à une fenêtre :

fenetre1 = plt.figure("Fenetre 1") #1ere fenetre

On pourra alors plus facilement ajouter un graphique à une fenetre particulière.

Cette méthode est très souvent employée même si son utilisation peut dérouter au début.

Une fenêtre, plusieurs graphiques

Comment afficher plusieurs graphiques dans une fenetre, 2 méthodes préconisées.

subplot

Lors de l'affichage d'un graphique, subplot permet de faire un sous-graphique

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(10) #Les données vont de 0 à 10
plt.figure('Fenetre 1')
plt.subplot(211)
plt.plot(x,x**2) #On trace x² en fonction de x
plt.subplot(212)
plt.plot(x,x**3) #On trace x^3 en fonction de x
plt.show() #On affiche le graphique

sublot(xyz)

x : nombre de ligne (dans l'exemple, il y a 2 lignes de graphiques)

y : nombre de colonne (dans l'exemple, 1 colonne)

z : index / numéro du graphique (qui croît vers la gauche)

Mais on peut aussi combiner ça avec figure vu précédemment, pour demander à afficher un sous-graphique dans une fenêtre particulière.

On utilisera alors add_subplot

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(10) #Les données vont de 0 à 10

fenetre1 = plt.figure('Fenetre 1') #La première fenetre s'appelle fenetre1
graphique1 = fenetre1.add_subplot(211) #On ajoute un sous-graphique à la fenetre 1. Ce sous-graphique est lié à la variable "graphique1"
graphique1.plot(x,x**2) #On configure "graphique1" 
graphique2 = fenetre1.add_subplot(212) #On ajoute un autre sous-graphique à la fenetre 1. Ce sous-graphique est lié à la variable "graphique2"
graphique2.plot(x,x**3) #On configure "graphique2" 
plt.show() #On affiche le graphique

C'est une façon plus précise pour écrire différents graphiques en permettant des configurations plus rigoureuses.

subplots

Une autre écriture possible, notez la différence subtile : subplot et subplots

subplots permet le même résultat que le précédent mais s'écrit différemment. On configure ensemble la fenêtre et les graphiques.

import numpy as np
import matplotlib.pyplot as plt
x=np.arange(10) #Les données vont de 0 à 10

fenetre1, (graphique1,graphique2) = plt.subplots(1,2) #La fenetre 1 possède deux sous-graphiques nommés ; il y a une ligne et 2 colonnes)
graphique1.plot(x,x**2)
graphique2.plot(x,x**3)
plt.show()

Dans la littérature, on trouve écrit de la sorte, y compris lorsqu'il n y a qu'un graphique :

fig, ax = plt.subplots() #fig = fenetre; ax = graphique. On demande à
ax.plot(...)
plt.show()
exemple.py
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(10)
fig,ax1 = plt.subplots()
ax1.plot(x,x**2)
plt.show()

Last updated

Was this helpful?