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 titre
- Axesest un objet qui représente un dessin avec ses axes (- ax.xaxiset- ax.yaxis), sa grille- ax.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’un- Axes) lorsque les variables aléatoires sont continues
- un diagramme en bâtons (méthode - bard’un- Axes) pour des variables aléatoires discrètes.
