Cambia lo spazio tra le sottotrame in Matplotlib

  1. Metodo tight_layout() per modificare lo spazio Matplotlib tra le sottotrame
  2. Metodo plt.subplots_adjust() per modificare lo spazio tra le sottotrame in Matplotlib
  3. Metodo plt.subplot_tool() per modificare lo spazio tra le sottotrame in Matplotlib
  4. Attiva constrained_layout=True nella funzione subplots 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()

Cambia lo spazio tra le sottotrame in Matplotlib usando tight_layout

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

sottotrame senza usare tight_layout

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

Migliora lo spazio tra le sottotrame in Matplotlib utilizzando 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 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()

Migliora lo spazio tra le sottotrame in Matplotlib utilizzando plt.subplots_adjust

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

Migliora la spaziatura delle sottotrame con molte sottotrame che attivano la visualizzazione vincolata

Articolo correlato - Matplotlib Subplot

  • Aggiungi titolo alle sottotrame in Matplotlib