Comment améliorer la taille ou l'espacement des sous-parcelles avec de nombreuses sous-parcelles dans Matplotlib
-
Méthode
tight_layout()
pour changer la taille et l’espacement des sous-parcelles Matplotlib -
Méthode
plt.subplots_adjust()
-
Méthode
plt.subplot_tool()
-
Activez
constrained_layout=True
dans la fonction des sous-parcelles

Nous pourrions utiliser les méthodes tight_layout()
, subplots_adjust()
et subplot_tool()
pour améliorer la taille ou l’espacement des sous-parcelles avec de nombreux sous-parcelles dans Matplotlib. Nous pouvons également améliorer l’espacement des sous-parcelles en définissant constrained_layout=True
dans la fonction subplots()
.
Méthode tight_layout()
pour changer la taille et l’espacement des sous-parcelles Matplotlib
La méthode tight_layout()
maintient automatiquement un espacement correct entre les sous-tracés.
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
y3=1/(1+np.exp(-x))
y4=np.exp(x)
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(x, y1)
ax[0, 1].plot(x, y2)
ax[1, 0].plot(x, y3)
ax[1, 1].plot(x,y4)
ax[0, 0].set_title("Sine function")
ax[0, 1].set_title("Cosine function")
ax[1, 0].set_title("Sigmoid function")
ax[1, 1].set_title("Exponential function")
fig.tight_layout()
plt.show()
Si nous n’utilisons pas la méthode tight_layout()
, une ligne chevauchera avec le titre de la suivante.
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
y3=1/(1+np.exp(-x))
y4=np.exp(x)
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(x, y1)
ax[0, 1].plot(x, y2)
ax[1, 0].plot(x, y3)
ax[1, 1].plot(x,y4)
ax[0, 0].set_title("Sine function")
ax[0, 1].set_title("Cosine function")
ax[1, 0].set_title("Sigmoid function")
ax[1, 1].set_title("Exponential function")
plt.show()
Méthode plt.subplots_adjust()
Nous pouvons utiliser la méthode plt.subplots_adjust()
pour changer l’espacement entre les sous-parcelles.
import numpy as np
import matplotlib.pyplot as plt
x=np.linspace(-3,3,100)
y1=np.sin(x)
y2=np.cos(x)
y3=1/(1+np.exp(-x))
y4=np.exp(x)
fig, ax = plt.subplots(2, 2)
ax[0, 0].plot(x, y1)
ax[0, 1].plot(x, y2)
ax[1, 0].plot(x, y3)
ax[1, 1].plot(x,y4)
ax[0, 0].set_title("Sine function")
ax[0, 1].set_title("Cosine function")
ax[1, 0].set_title("Sigmoid function")
ax[1, 1].set_title("Exponential function")
plt.subplots_adjust(left=0.125,
bottom=0.1,
right=0.9,
top=0.9,
wspace=0.2,
hspace=0.35)
plt.show()
plt.subplots_adjust(left=0.125,
bottom=0.1,
right=0.9,
top=0.9,
wspace=0.2,
hspace=0.35)
wspace
et hspace
spécifient l’espace réservé entre le sous-tracé. Ce sont les fractions de largeur et de hauteur d’axe respectivement.
Les paramètres left
, right
, top
et bottom
spécifient les positions des quatre côtés des sous-tracés. Ce sont les fractions de la largeur et de la hauteur de la figure.
Méthode plt.subplot_tool()
Cette méthode lance une fenêtre d’outil de sous-tracé pour une figure.
import numpy as np
import matplotlib.pyplot as plt
im1=np.random.random((50,50))
im2=np.random.random((40,50))
im3=np.random.random((50,40))
im4=np.random.random((60,50))
plt.subplot(221)
plt.imshow(im1)
plt.subplot(222)
plt.imshow(im2)
plt.subplot(223)
plt.imshow(im3)
plt.subplot(224)
plt.imshow(im4)
plt.subplot_tool()
plt.show()
Il fournit une méthode interactive permettant à l’utilisateur de faire glisser la barre dans subplot_tool
pour modifier la disposition des sous-parcelles.
Activez constrained_layout=True
dans la fonction des sous-parcelles
constrained_layout
ajuste automatiquement les sous-tracés et les décorations pour les adapter le mieux possible à la figure.
constrained_layout
doit être activé avant ou pendant la création du sous-tracé car il optimise la mise en page avant chaque étape du dessin.
import numpy as np
import matplotlib.pyplot as plt
a=np.linspace(0,5,100)
figure, axes = plt.subplots(2,2, constrained_layout=True)
axes[0, 0].plot(x, np.exp(a))
axes[0, 1].plot(a, np.sin(a))
axes[1, 0].plot(a, np.cos(a))
axes[1, 1].plot(range(10))
axes[0, 0].set_title("subplot 1")
axes[0, 1].set_title("subplot 2")
axes[1, 0].set_title("subplot 3")
axes[1, 1].set_title("subplot 4")
plt.show()
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Matplotlib Subplot
- Comment créer différentes tailles de sous-parcelles dans Matplotlib
- Comment ajouter un titre aux sous-parcelles dans Matplotlib
- Ajouter une sous-parcelle à une figure dans Matplotlib