Sottografici e layout
Combinare più grafici
Sottografici e layout è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.
Perché usare più grafici
Spesso un solo grafico non basta. Potrebbe voler confrontare diverse prospettive affiancate oppure suddividere un grafico complesso in pannelli più piccoli. Matplotlib definisce questa operazione come la disposizione di più axes all'interno di una figure.
Lo strumento principale è plt.subplots(rows, cols).
Una griglia di Axes
fig, axes = plt.subplots(2, 3) crea una figura con una griglia 2 per 3, che mette a disposizione sei Axes. Il risultato axes è un array bidimensionale che si indicizza come axes[0][1].
Il numero totale di pannelli è semplicemente il prodotto di righe e colonne.
rows, cols = 2, 3
total = rows * cols
print('Grid', rows, 'x', cols, '=', total, 'axes')
for r in range(rows):
for c in range(cols):
print('panel at', (r, c))Indicizzare l'array degli Axes
Con una sola riga, axes è monodimensionale: usi axes[0], axes[1]. Con una griglia completa è bidimensionale: axes[row][col].
Per un singolo sottografico non è necessario alcun indice.
Iterare sui pannelli
Un modello ordinato consiste nel rendere piatta la griglia e iterare, abbinando ogni Axes ai relativi dati. In questo modo si evita di ripetere codice quasi identico per ogni pannello.
datasets = ['A', 'B', 'C', 'D']
# imagine axes flattened to a list of 4
for i, name in enumerate(datasets):
print('Plot dataset', name, 'on flat axes index', i)Assi condivisi
Quando i pannelli condividono una scala, passi sharex=True o sharey=True. I sottografici utilizzano così un unico intervallo comune, rendendo più equi i confronti ed eliminando le etichette delle tacche ridondanti.
È la soluzione ideale per le serie temporali impilate.
Dimensioni della figura per le griglie
Una griglia richiede più spazio di un singolo grafico. Imposti figsize=(width, height) in pollici quando chiama subplots. Una regola pratica consiste nel proporzionare le dimensioni al numero di colonne e di righe.
cols, rows = 3, 2
per_panel_w, per_panel_h = 3, 2.5
print('Suggested figsize:', (cols * per_panel_w, rows * per_panel_h))Spaziatura tra i pannelli
I pannelli possono risultare troppo ravvicinati. fig.tight_layout() risolve automaticamente la maggior parte dei casi. Per un controllo più preciso, utilizzi fig.subplots_adjust(wspace=0.4, hspace=0.4) per impostare gli spazi orizzontali e verticali.
Valori maggiori significano più spazio tra i sottografici.
Layout irregolari con GridSpec
Non tutti i layout sono griglie uniformi. GridSpec consente a un Axes di estendersi su più righe o colonne, ad esempio con un grafico ampio in alto e due grafici più piccoli sotto.
Si definisce la griglia, poi la si indicizza come un array per posizionare ciascun Axes.
Pianificare le estensioni
Consideri le sezioni di GridSpec come intervalli. Un grafico superiore che si estende su tutte le colonne è gs[0, :]; un grafico in basso a sinistra è gs[1, 0]. Pianificare prima le sezioni su carta evita confusioni.
layout = {
'header': '[0, :] (full width)',
'left': '[1, 0] (bottom left)',
'right': '[1, 1] (bottom right)',
}
for name, slot in layout.items():
print(name.ljust(7), slot)Una Figure, una storia
Una figura con più pannelli dovrebbe comunque raccontare un'unica storia coerente. Utilizzi un fig.suptitle() condiviso, colori coerenti e scale condivise, così i pannelli verranno letti come un insieme e non come un collage casuale.
Personalizzazione dei singoli pannelli
Poiché ogni cella è un Axes indipendente, può personalizzarla separatamente. axes[0][0].set_title('Sales') assegna un titolo solo al pannello in alto a sinistra, mentre axes[1][1].set_ylabel('Cost') assegna un'etichetta solo a quello in basso a destra.
Questa indipendenza è esattamente il motivo per cui lo stile orientato agli oggetti dà il meglio di sé con le griglie.
Verifica rapida
Verifichi la sua comprensione dei layout a più pannelli.
Riepilogo
Ora può combinare i grafici:
plt.subplots(rows, cols)crea una griglia di Axes- Indicizzi con
axes[row][col]oppure renda piatta la griglia e iteri sharex/shareyallineano le scale;figsizedefinisce le dimensioni della grigliatight_layoutesubplots_adjustgestiscono la spaziaturaGridSpecconsente di creare pannelli che si estendono su più celle
Domande Frequenti
La lezione «Sottografici e layout» è gratuita?
Sì — il testo completo di «Sottografici e layout» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.
Cosa imparerò in «Sottografici e layout»?
Combinare più grafici Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Python Academy?
Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Sottografici e layout»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Python Academy?
Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Figure e assi
- Grafici a linee, a barre e a dispersione
- Personalizzare i grafici
- Sottografici e layout