Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sottotrame | Personalizzazione dei Grafici
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Visualizzazione Avanzata con Python

bookSottotrame

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.

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 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.

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 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.

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 sottoplot. È 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.

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. Posizionare il primo grafico a linee per data_linear nella prima riga (riga 0) della griglia di subplot.
  6. Posizionare il secondo grafico a linee per data_squared nella seconda riga (riga 1) della griglia di subplot.
  7. Posizionare 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 3. Capitolo 6
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

Suggested prompts:

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?

close

bookSottotrame

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.

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 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.

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 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.

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 sottoplot. È 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.

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. Posizionare il primo grafico a linee per data_linear nella prima riga (riga 0) della griglia di subplot.
  6. Posizionare il secondo grafico a linee per data_squared nella seconda riga (riga 1) della griglia di subplot.
  7. Posizionare 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 3. Capitolo 6
single

single

some-alt