Noter
Cliquez ici pour télécharger l'exemple de code complet
Création de plusieurs sous-parcelles à l'aide de plt.subplots
#
pyplot.subplots
crée une figure et une grille de sous-parcelles avec un seul appel, tout en offrant un contrôle raisonnable sur la façon dont les parcelles individuelles sont créées. Pour des cas d'utilisation plus avancés, vous pouvez utiliser GridSpec
pour une disposition de sous-parcelles plus générale ou Figure.add_subplot
pour ajouter des sous-parcelles à des emplacements arbitraires dans la figure.
Une figure avec une seule sous-parcelle #
subplots()
sans arguments renvoie un Figure
et un seul
Axes
.
C'est en fait la manière la plus simple et la plus recommandée de créer une seule figure et des axes.
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('A single plot')
Text(0.5, 1.0, 'A single plot')
Empiler les sous-parcelles dans une direction #
Les deux premiers arguments facultatifs de pyplot.subplots
définissent le nombre de lignes et de colonnes de la grille de sous-parcelles.
Lors de l'empilement dans une seule direction, le retour axs
est un tableau numpy 1D contenant la liste des axes créés.
fig, axs = plt.subplots(2)
fig.suptitle('Vertically stacked subplots')
axs[0].plot(x, y)
axs[1].plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2d00efd510>]
Si vous ne créez que quelques Axes, il est pratique de les décompresser immédiatement dans des variables dédiées à chaque Axe. De cette façon, nous pouvons utiliser ax1
à la place du plus verbeux axs[0]
.
fig, (ax1, ax2) = plt.subplots(2)
fig.suptitle('Vertically stacked subplots')
ax1.plot(x, y)
ax2.plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2d00a95b70>]
Pour obtenir des sous-parcelles côte à côte, transmettez des paramètres pour une ligne et deux colonnes.1, 2
fig, (ax1, ax2) = plt.subplots(1, 2)
fig.suptitle('Horizontally stacked subplots')
ax1.plot(x, y)
ax2.plot(x, -y)
[<matplotlib.lines.Line2D object at 0x7f2cfb43d330>]
Empiler des sous-parcelles dans deux directions #
Lors de l'empilement dans deux directions, le résultat axs
est un tableau NumPy 2D.
Si vous devez définir des paramètres pour chaque sous-parcelle, il est pratique de parcourir toutes les sous-parcelles d'une grille 2D à l'aide de .for ax in axs.flat:
fig, axs = plt.subplots(2, 2)
axs[0, 0].plot(x, y)
axs[0, 0].set_title('Axis [0, 0]')
axs[0, 1].plot(x, y, 'tab:orange')
axs[0, 1].set_title('Axis [0, 1]')
axs[1, 0].plot(x, -y, 'tab:green')
axs[1, 0].set_title('Axis [1, 0]')
axs[1, 1].plot(x, -y, 'tab:red')
axs[1, 1].set_title('Axis [1, 1]')
for ax in axs.flat:
ax.set(xlabel='x-label', ylabel='y-label')
# Hide x labels and tick labels for top plots and y ticks for right plots.
for ax in axs.flat:
ax.label_outer()
Vous pouvez également utiliser le tuple-unpacking en 2D pour affecter toutes les sous-parcelles à des variables dédiées :
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(2, 2)
fig.suptitle('Sharing x per column, y per row')
ax1.plot(x, y)
ax2.plot(x, y**2, 'tab:orange')
ax3.plot(x, -y, 'tab:green')
ax4.plot(x, -y**2, 'tab:red')
for ax in fig.get_axes():
ax.label_outer()
Axes polaires #
Le paramètre subplot_kw de pyplot.subplots
contrôle les propriétés de la sous-parcelle (voir aussi Figure.add_subplot
). En particulier, cela peut être utilisé pour créer une grille d'axes polaires.
Durée totale d'exécution du script : (0 minutes 7,774 secondes)