22. Matplotlib#
La bibliothèque matplotlib
est un puissant outil de de création graphique.
Voici une première utilisation élémentaire avec
l’import de la bibliothèque (on la renomme
plt
pour simplifier son utilisation) ;l’ajout d’une courbe en indiquant les points de passages (une liste pour les absisses et une autre pour les ordonnées) ;
le choix du titre ;
le choix des labels pour l’absisse et l’ordonnée ;
l’affichage d’une fenètre avec le graphique ;
en option, la sauvegarde du graphique en
png
.
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4], [2, 3, 1, 2])
plt.title("Mon premier graphique")
plt.xlabel("X-axis")
plt.ylabel("Y-axis")
plt.show()
#plt.savefig("graphique.png", format = 'png')
Matplotlib dispose d’une grande variété de graphiques. Voici un exemple qui utilise les histogrammes. On commence par générer un ensemble de valeurs aléatoires, ici la somme de deux dés à 6 faces. On génère ensuite un histogramme.
from random import randint
data = [randint(1,6) + randint(1,6) for _ in range(100000)]
plt.hist(data, bins=range(2,14))
(array([ 2834., 5561., 8327., 11254., 13732., 16633., 13760., 11066.,
8365., 5556., 2912.]),
array([ 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.]),
<BarContainer object of 11 artists>)
Il est difficile de décrire tout ce qui est possible de faire avec matplotlib. Voici un autre exemple où les deux graphiques ci-dessus sont représentés ensemble.
fig, (ax1, ax2) = plt.subplots(2) # création d'un graphique avec 2 sous-graphiques.
fig.suptitle('Vertically stacked subplots') # CHoix du titre principal
ax1.plot([1, 2, 3, 4], [2, 3, 1, 2]) # Affichage du premier graphique
ax2.hist(data, bins=range(2,14)) # Affichage du second
(array([ 2834., 5561., 8327., 11254., 13732., 16633., 13760., 11066.,
8365., 5556., 2912.]),
array([ 2., 3., 4., 5., 6., 7., 8., 9., 10., 11., 12., 13.]),
<BarContainer object of 11 artists>)
Vous pourrez voir sur le site de matplotlib, des exemples de tous les types de graphiques existants. Ces exemples sont assez bien documentés pour que vous puissiez vous inspirer du code pour faire vos propres graphiques.