Come regolare la spaziatura tra le sottotrame matplotlib
Spesso puoi utilizzare le sottotrame per visualizzare più grafici uno accanto all’altro in Matplotlib. Sfortunatamente, queste sottotrame tendono a sovrapporsi per impostazione predefinita.
Il modo più semplice per risolvere questo problema è utilizzare la funzione Matplotlib Tight_layout() . Questo tutorial spiega come utilizzare questa funzione nella pratica.
Crea sottotrame
Considera la seguente disposizione di 4 sottotrame in 2 colonne e 2 righe:
import matplotlib.pyplot as plt #define subplots fig, ax = plt. subplots (2, 2) #display subplots plt. show ()
Nota come le sottotrame si sovrappongono un po’.
Regola la spaziatura della sottotrama usando Tight_layout()
Il modo più semplice per risolvere questo problema di sovrapposizione è utilizzare la funzione Matplotlib Tight_layout() :
import matplotlib.pyplot as plt #define subplots fig, ax = plt. subplots (2, 2) fig. tight_layout () #display subplots plt. show ()
Regola la spaziatura dei titoli della sottotrama
In alcuni casi, puoi anche avere titoli per ciascuna delle tue sottotrame. Sfortunatamente, anche la funzione Tight_layout() tende a causare la sovrapposizione dei titoli delle sottotrame:
import matplotlib.pyplot as plt #define subplots fig, ax = plt. subplots (2, 2) fig. tight_layout () #define subplot titles ax[0, 0]. set_title ('First Subplot') ax[0, 1]. set_title ('Second Subplot') ax[1, 0]. set_title ('Third Subplot') ax[1, 1]. set_title ('Fourth Subplot') #display subplots plt. show ()
Il modo per risolvere questo problema è aumentare l’imbottitura in altezza tra le sottotrame utilizzando l’argomento h_pad :
import matplotlib.pyplot as plt #define subplots fig, ax = plt. subplots (2, 2) fig. tight_layout (h_pad= 2 ) #define subplot titles ax[0, 0]. set_title ('First Subplot') ax[0, 1]. set_title ('Second Subplot') ax[1, 0]. set_title ('Third Subplot') ax[1, 1]. set_title ('Fourth Subplot') #display subplots plt. show ()
Regola la spaziatura complessiva del titolo
Se hai un titolo generale, puoi utilizzare la funzione subplots_adjust() per assicurarti che non si sovrapponga ai titoli della sottotrama:
import matplotlib.pyplot as plt #define subplots fig, ax = plt. subplots (2, 2) fig. tight_layout (h_pad= 2 ) #define subplot titles ax[0, 0]. set_title ('First Subplot') ax[0, 1]. set_title ('Second Subplot') ax[1, 0]. set_title ('Third Subplot') ax[1, 1]. set_title ('Fourth Subplot') #add overall title and adjust it so that it doesn't overlap with subplot titles fig.suptitle(' Overall Title ') plt.subplots_adjust(top= 0.85 ) #display subplots plt. show ()
Puoi trovare altri tutorial su Matplotlib qui .