Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Creazione di Sottotrame | Sezione
Practice
Projects
Quizzes & Challenges
Quiz
Challenges
/
Visualizzazione dei Dati con Matplotlib

bookCreazione di Sottotrame

La funzione subplots() di pyplot viene utilizzata per creare più grafici in una singola 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.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

È stata creata una griglia di subplot 2 per 2.

Note
Nota

Poiché ci sono più subplot, subplots restituisce un array di oggetti Axes, solitamente memorizzato in una variabile chiamata axs (il singolare ax viene utilizzato per un solo grafico).

In questo caso, axs è un array bidimensionale, quindi sono necessari sia un indice di riga che uno di colonna per accedere a un subplot specifico.

1234567891011121314
import 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()
copy

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:

123456789
fig, 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()
copy

Con una matrice 2x2, axs.ravel() la 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.

123456789
fig, 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()
copy

Impostando sharex=True si condivide l'asse x tra tutti i sottografi. È anche possibile passare 'row' o 'col' per condividere gli assi solo all'interno delle righe o delle colonne.

Note
Approfondisci

Come di consueto, sentiti libero di approfondire nella subplots() documentazione se desideri approfondire.

Compito

Swipe to start coding

  1. Utilizzare la funzione corretta per creare una griglia di subplot.
  2. La griglia deve avere 3 righe e 1 colonna (specificare i primi due parametri).
  3. Specificare l'argomento keyword più a destra, in modo che l'asse x sia condiviso tra tutti i subplot.
  4. Salvare il risultato della funzione per la creazione dei subplot nelle variabili fig e axs (da sinistra a destra).
  5. Inserire il primo grafico a linee per data_linear nella prima riga (riga 0) della griglia di subplot.
  6. Inserire il secondo grafico a linee per data_squared nella seconda riga (riga 1) della griglia di subplot.
  7. Inserire il terzo grafico a linee per data_exp nella terza riga (riga 2) della griglia di subplot.

Soluzione

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 14
single

single

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

close

bookCreazione di Sottotrame

Scorri per mostrare il menu

La funzione subplots() di pyplot viene utilizzata per creare più grafici in una singola 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.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

È stata creata una griglia di subplot 2 per 2.

Note
Nota

Poiché ci sono più subplot, subplots restituisce un array di oggetti Axes, solitamente memorizzato in una variabile chiamata axs (il singolare ax viene utilizzato per un solo grafico).

In questo caso, axs è un array bidimensionale, quindi sono necessari sia un indice di riga che uno di colonna per accedere a un subplot specifico.

1234567891011121314
import 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()
copy

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:

123456789
fig, 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()
copy

Con una matrice 2x2, axs.ravel() la 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.

123456789
fig, 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()
copy

Impostando sharex=True si condivide l'asse x tra tutti i sottografi. È anche possibile passare 'row' o 'col' per condividere gli assi solo all'interno delle righe o delle colonne.

Note
Approfondisci

Come di consueto, sentiti libero di approfondire nella subplots() documentazione se desideri approfondire.

Compito

Swipe to start coding

  1. Utilizzare la funzione corretta per creare una griglia di subplot.
  2. La griglia deve avere 3 righe e 1 colonna (specificare i primi due parametri).
  3. Specificare l'argomento keyword più a destra, in modo che l'asse x sia condiviso tra tutti i subplot.
  4. Salvare il risultato della funzione per la creazione dei subplot nelle variabili fig e axs (da sinistra a destra).
  5. Inserire il primo grafico a linee per data_linear nella prima riga (riga 0) della griglia di subplot.
  6. Inserire il secondo grafico a linee per data_squared nella seconda riga (riga 1) della griglia di subplot.
  7. Inserire il terzo grafico a linee per data_exp nella terza riga (riga 2) della griglia di subplot.

Soluzione

Switch to desktopCambia al desktop per esercitarti nel mondo realeContinua da dove ti trovi utilizzando una delle opzioni seguenti
Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 14
single

single

some-alt