Cambia lo spazio tra le sottotrame in Matplotlib
-
Metodo
tight_layout()
per modificare lo spazio Matplotlib tra le sottotrame -
Metodo
plt.subplots_adjust()
per modificare lo spazio tra le sottotrame in Matplotlib -
Metodo
plt.subplot_tool()
per modificare lo spazio tra le sottotrame in Matplotlib -
Attiva
constrained_layout=True
nella funzionesubplots
di Matplotlib
Potremmo usare i metodi tight_layout()
, subplots_adjust()
e subplot_tool()
per cambiare la dimensione o lo spazio della sottotrama in Matplotlib. Possiamo anche migliorare lo spazio tra lo spazio Matplotlib impostando constrained_layout=True
nella funzione subplots()
.
Metodo tight_layout()
per modificare lo spazio Matplotlib tra le sottotrame
Il metodo tight_layout()
mantiene automaticamente lo spazio appropriato tra le sottotrame.
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()
Se non usassimo il metodo tight_layout()
, una riga si sovrapporrebbe al titolo della successiva.
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()
Metodo plt.subplots_adjust()
per modificare lo spazio tra le sottotrame in Matplotlib
Possiamo usare il metodo plt.subplots_adjust()
per cambiare lo spazio tra le sottotrame di Matplotlib.
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
e hspace
specificano lo spazio riservato tra le sottotrame Matplotlib. Sono rispettivamente le frazioni della larghezza e dell’altezza dell’asse.
I parametri left
, right
, top
e bottom
specificano i quattro lati delle posizioni delle sottotrame. Sono le frazioni della larghezza e dell’altezza della figura.
Metodo plt.subplot_tool()
per modificare lo spazio tra le sottotrame in Matplotlib
Questo metodo avvia una finestra degli strumenti della sottotrama per una figura.
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()
Fornisce un metodo interattivo per l’utente per trascinare la barra in subplot_tool
per modificare il layout delle sottotrame.
Attiva constrained_layout=True
nella funzione subplots
di Matplotlib
constrained_layout
regola automaticamente le sottotrame e le decorazioni per adattarle alla figura nel miglior modo possibile.
La grafica vincolata deve essere attivata prima o durante la creazione della sottotrama poiché ottimizza il layout prima di ogni fase di disegno.
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.
LinkedIn