3. Module matplotlib#
C’est le module de tracé qu’il faut connaitre. D’autres modules comme seaborn sont plus adaptés aux statistiques mais reposent sur matplotlib.
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
3.1. Figure et axes#
On recommande d’utiliser plt.subplots pour initialiser un objet Figure et des objets Axes.
Figureest l’objet global qui contient une liste d’Axeset le titreAxesest un objet qui représente un dessin avec ses axes (ax.xaxisetax.yaxis), sa grilleax.gridet les différents tracés (courbes, nuages de points, histogrammes, etc.)

x = np.linspace(0, 2*np.pi, 200)
y = np.sin(x**2)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('Première Figure avec un seul Axes')
Text(0.5, 1.0, 'Première Figure avec un seul Axes')
fig, (ax1, ax2) = plt.subplots(nrows=1, ncols=2,
figsize=(8, 4), sharey=True)
ax1.plot(x, y)
ax1.set_title('Style ligne')
ax2.scatter(x, 2*y)
ax2.set_title("Dilatation d'un facteur 2 et style point")
fig.suptitle(r'Deux tracés `Axes` qui partagent le même axe $y$')
fig.tight_layout() # pour avoir un aspect plus resserré (moins de marges)
plt.show()
fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1, figsize=(8,4),
sharex=True, layout="tight")
ax1.plot(x, y, color="C0")
ax2.scatter(x, 2*y, marker='x', color="C1")
plt.show()
Les noms ax1 et ax2 obtenus comme retour de la fonction plt.subplots sont des raccourcis vers la liste des Axes de l’objet fig.
Ainsi on a:
(ax1 is fig.axes[0], ax2 is fig.axes[1])
(True, True)
Si on utilise le tuple unpacking pour nommer directement ax1 et ax2, on récupère tous les Axes créés. Dans l’exemple qui suit on a 2 lignes et 2 colonnes donc 4 Axes créés: plus exactement une liste de 2 listes de 2 Axes.
fig, axs = plt.subplots(nrows=2, ncols=2, figsize=(8,6))
for i, ax in enumerate(axs.flat): # important ici le flat pour applatir axs
ax.plot(x, y, c=f"C{i}", label=f"C{i}")
ax.legend()
fig.legend(loc="center right")
fig.suptitle("Illustration des 4 premières couleurs de la palette")
plt.show()
3.2. Nuage de points#
C’est un scatter-plot obtenu par la méthode scatter d’un Axes. Exemple d’utilisation:
from numpy.random import default_rng
rng = default_rng()
data = {'a': np.arange(50),
'c': rng.integers(0, 50, size=50),
'd': rng.standard_normal(size=50)}
data['b'] = data['a'] + 10 * rng.standard_normal(50)
data['d'] = np.abs(data['d']) * 100
fig, ax = plt.subplots(figsize=(8, 6))
ax.scatter(x='a', y='b', c='c', s='d', data=data)
ax.set_xlabel('Entry a')
ax.set_ylabel('Entry b');
3.3. Courbes#
C’est la fonction plot: lire la page de documentation !
3.4. Distribution empirique#
Pour visualiser la distribution empirique associée à des réalisations de variables aléatoires i.i.d on utilisera
un histogramme ( méthode
histd’unAxes) lorsque les variables aléatoires sont continuesun diagramme en bâtons (méthode
bard’unAxes) pour des variables aléatoires discrètes.