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
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

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

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()
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?