Comment améliorer la taille ou l'espacement des sous-parcelles avec de nombreuses sous-parcelles dans Matplotlib

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

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()

Améliorez la taille du sous-tracé avec de nombreux sous-tracés à l’aide de tight_layout

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()

sous-tracés sans utiliser tight_layout

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()

Améliorez l’espacement des sous-tracés avec de nombreux sous-tracés à l’aide de plt.subplots_adjust

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()

Améliorez l’espacement des sous-tracés avec de nombreux sous-tracés à l’aide de plt.subplots_adjust

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()

Améliorez l’espacement des sous-tracés avec de nombreux sous-tracés activant constrained_layout

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Matplotlib Subplot