Sottotrame
La funzione subplots() di pyplot viene utilizzata per creare più grafici in un'unica figura. L'hai già vista durante la creazione di una tela; ora la esaminiamo più nel dettaglio.
Righe e Colonne
Gli argomenti principali sono nrows e ncolumns, che definiscono la griglia dei subplot. Per impostazione predefinita, entrambi sono 1, producendo un singolo oggetto Axes.
subplots() restituisce una Figure e uno o più oggetti Axes, a seconda del layout.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
È stata creata una griglia di subplot 2 per 2.
Poiché ci sono più subplot, subplots restituisce un array di oggetti Axes, solitamente memorizzato in una variabile chiamata axs (il singolare ax si usa per un solo grafico).
In questo caso, axs è un array bidimensionale, quindi sono necessari sia l'indice di riga che quello di colonna per accedere a un subplot specifico.
1234567891011121314import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
La prima riga contiene due grafici a linee; la seconda riga contiene due grafici a dispersione.
Ogni grafico deve essere disegnato utilizzando il metodo dell'oggetto Axes corrispondente, non plt.plot() o plt.scatter().
Conversione in Array 1D
È possibile appiattire l'array 2D di Axes utilizzando .ravel() per semplificare l'indicizzazione:
123456789fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Con un array 2x2, axs.ravel() lo converte in un array 1D contenente quattro elementi.
Condivisione di un asse
La funzione subplots() dispone anche dei parametri sharex e sharey. Questi controllano se gli assi x o y sono condivisi tra i sottoplot. Entrambi sono impostati su False per impostazione predefinita.
123456789fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Impostando sharex=True si condivide l'asse x tra tutti i sottoplot.
È anche possibile passare 'row' o 'col' per condividere gli assi solo all'interno delle righe o delle colonne.
Come di consueto, sentiti libero di approfondire nella
subplots() documentazione se desideri.
Swipe to start coding
- Utilizzare la funzione corretta per creare una griglia di subplot.
- La griglia deve avere 3 righe e 1 colonna (specificare i primi due parametri).
- Specificare l'argomento keyword più a destra, in modo che l'asse x sia condiviso tra tutti i subplot.
- Salvare il risultato della funzione per la creazione dei subplot nelle variabili
figeaxs(da sinistra a destra). - Posizionare il primo grafico a linee per
data_linearnella prima riga (riga0) della griglia di subplot. - Posizionare il secondo grafico a linee per
data_squarednella seconda riga (riga1) della griglia di subplot. - Posizionare il terzo grafico a linee per
data_expnella terza riga (riga2) della griglia di subplot.
Soluzione
Grazie per i tuoi commenti!
single
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione
Can you explain more about how to access individual subplots in the 2D array?
What happens if I create a grid with more rows or columns?
How do I customize the appearance of each subplot?
Fantastico!
Completion tasso migliorato a 3.85
Sottotrame
Scorri per mostrare il menu
La funzione subplots() di pyplot viene utilizzata per creare più grafici in un'unica figura. L'hai già vista durante la creazione di una tela; ora la esaminiamo più nel dettaglio.
Righe e Colonne
Gli argomenti principali sono nrows e ncolumns, che definiscono la griglia dei subplot. Per impostazione predefinita, entrambi sono 1, producendo un singolo oggetto Axes.
subplots() restituisce una Figure e uno o più oggetti Axes, a seconda del layout.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
È stata creata una griglia di subplot 2 per 2.
Poiché ci sono più subplot, subplots restituisce un array di oggetti Axes, solitamente memorizzato in una variabile chiamata axs (il singolare ax si usa per un solo grafico).
In questo caso, axs è un array bidimensionale, quindi sono necessari sia l'indice di riga che quello di colonna per accedere a un subplot specifico.
1234567891011121314import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear**2 fig, axs = plt.subplots(2, 2) axs[0, 0].plot(data_linear) axs[0, 1].plot(data_squared) axs[1, 0].scatter(data_linear, data_linear) axs[1, 1].scatter(data_linear, data_squared) plt.show()
La prima riga contiene due grafici a linee; la seconda riga contiene due grafici a dispersione.
Ogni grafico deve essere disegnato utilizzando il metodo dell'oggetto Axes corrispondente, non plt.plot() o plt.scatter().
Conversione in Array 1D
È possibile appiattire l'array 2D di Axes utilizzando .ravel() per semplificare l'indicizzazione:
123456789fig, axs = plt.subplots(2, 2) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Con un array 2x2, axs.ravel() lo converte in un array 1D contenente quattro elementi.
Condivisione di un asse
La funzione subplots() dispone anche dei parametri sharex e sharey. Questi controllano se gli assi x o y sono condivisi tra i sottoplot. Entrambi sono impostati su False per impostazione predefinita.
123456789fig, axs = plt.subplots(2, 2, sharex=True) axs = axs.ravel() axs[0].plot(data_linear) axs[1].plot(data_squared) axs[2].scatter(data_linear, data_linear) axs[3].scatter(data_linear, data_squared) plt.show()
Impostando sharex=True si condivide l'asse x tra tutti i sottoplot.
È anche possibile passare 'row' o 'col' per condividere gli assi solo all'interno delle righe o delle colonne.
Come di consueto, sentiti libero di approfondire nella
subplots() documentazione se desideri.
Swipe to start coding
- Utilizzare la funzione corretta per creare una griglia di subplot.
- La griglia deve avere 3 righe e 1 colonna (specificare i primi due parametri).
- Specificare l'argomento keyword più a destra, in modo che l'asse x sia condiviso tra tutti i subplot.
- Salvare il risultato della funzione per la creazione dei subplot nelle variabili
figeaxs(da sinistra a destra). - Posizionare il primo grafico a linee per
data_linearnella prima riga (riga0) della griglia di subplot. - Posizionare il secondo grafico a linee per
data_squarednella seconda riga (riga1) della griglia di subplot. - Posizionare il terzo grafico a linee per
data_expnella terza riga (riga2) della griglia di subplot.
Soluzione
Grazie per i tuoi commenti!
single