Skip to article frontmatterSkip to article content
import matplotlib.pyplot as plt
%matplotlib inline
import pandas as pd
import numpy as np

figures et sous-figures

# le code
x = np.linspace(0, 2*np.pi, 500)
plt.plot(x, np.sin(x))
plt.plot(x, np.cos(x));
<Figure size 640x480 with 1 Axes>
# le code
plt.figure(figsize=(4, 2))
x = np.linspace(0, 2*np.pi, 500)
plt.plot(x, np.sin(x))
plt.show()
plt.plot(x, np.cos(x));
<Figure size 400x200 with 1 Axes><Figure size 640x480 with 1 Axes>

par vecteur de sous-figures (plt.subplots)

# le code
fig, axes = plt.subplots(2, 3)
axes.shape

x = np.linspace(0, 2*np.pi, 50)
axes[0, 0].plot(x, np.sin(x))
axes[-1, -1].plot(x, np.cos(x));
<Figure size 640x480 with 6 Axes>

par tailles/positions dans une grille (plt.subplot)

ax1 = plt.subplot(121) # grille 1 ligne, 2 colonnes
                       # création de la première sous-figure

ax1.plot(x, np.sin(x)) # affichage de la courbe sinus

ax2 = plt.subplot(122) # grille 1 ligne, 2 colonnes
                       # création de la deuxième sous-figure

ax2.plot(x, np.cos(x)) # affichage de la courbe cosinus
;
''
<Figure size 640x480 with 2 Axes>

sous-figure sur plusieurs lignes/colonnes

# le code
ax1 = plt.subplot(2, 3, 1) # la première case
y = np.sin(x)
ax1.plot(x, y, 'b') # bleu

ax2 = plt.subplot(2, 3, 2) # la seconde case
ax2.plot(x, y, 'r') # rouge

ax3 = plt.subplot(2, 3, (3, 6)) # de la case 3 à la case 6
ax3.plot(x, y, 'g') # vert

ax4 = plt.subplot(2, 3, (4, 5)) # de la case 4 à la case 5
ax4.plot(x, y, 'y'); # jaune
<Figure size 640x480 with 4 Axes>

améliorer les figures composées

# le code

x = np.linspace(0, 2*np.pi, 50)
y = np.sin(x)

plt.suptitle('une figure avec 3 sous-figures')

ax1 = plt.subplot(2, 2, 1)
ax1.plot(x, y, 'b')
ax1.set_title('sinus bleu')

ax2 = plt.subplot(2, 2, 2)
ax2.set_xlabel('abscisses')
ax2.set_ylabel('ordonnées')
ax2.plot(x, y, 'r')

ax3 = plt.subplot(2, 2, (3, 4))
ax3.plot(x, y, 'g')
ax3.set_title('sinus vert')


plt.tight_layout()
<Figure size 640x480 with 3 Axes>