Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Delplott | Tilpasning av Diagrammer
Ultimate Visualisering med Python

Sveip for å vise menyen

book
Delplott

Funksjonen subplots() fra pyplot har dette spesifikke formålet. Den ble tidligere brukt til å opprette et lerret i den første seksjonen, og nå skal vi se nærmere på den.

Rader og kolonner

De viktigste argumentene for denne funksjonen er nrows og ncolumns, som angir antall rader og kolonner i subplot-rutenettet. Som standard er begge satt til 1, slik at du får én enkelt plot (Axes).

Funksjonen subplots() returnerer et Figure-objekt og enten ett Axes-objekt eller et array av Axes-objekter, avhengig av størrelsen på rutenettet.

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

Et 2 x 2 subplot-rutenett ble opprettet.

Note
Merk

Siden det er flere underplott, returnerer subplots et array av Axes-objekter, vanligvis lagret i en variabel kalt axs (entall ax brukes for ett plott).

I dette tilfellet er axs et todimensjonalt array, så du trenger både rad- og kolonneindeks for å få tilgang til et bestemt underplott.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object 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

Første rad (rad 0) har to linjediagrammer, og andre rad (rad 1) har to spredningsdiagrammer.

Siden hvert diagram plasseres på en egen subplot, kan ikke plt.plot() eller plt.scatter() brukes direkte. Riktig tilnærming er å kalle den tilsvarende metoden på hvert enkelt Axes-objekt.

Konvertering til 1D-array

Det er også mulig å bruke .ravel()-metoden for å konvertere en todimensjonal Axes-array til et endimensjonalt sammenhengende flatt array:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object 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

Med et 2x2-array konverterer axs.ravel() det til et 1D-array som inneholder fire elementer.

Dele en akse

Funksjonen subplots() har også parameterne sharex og sharey. De styrer om x- eller y-aksene deles mellom subplottene. Begge er satt til False som standard.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot 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

Ved å sette sharex=True deles x-aksen mellom alle delplott, noe som er nyttig her fordi alle delplott bruker de samme x-akseverdiene.

Du kan også sette sharex eller sharey til 'row' for å dele aksen innenfor hver rad av delplott, eller 'col' for å dele den innenfor hver kolonne av delplott.

Note
Studer mer

Som vanlig kan du utforske mer i subplots() dokumentasjonen hvis du ønsker det.

Oppgave

Swipe to start coding

  1. Bruk riktig funksjon for å opprette et subplot-rutenett.
  2. Rutenettet skal ha 3 rader og 1 kolonne (angi de to første parameterne).
  3. Angi det høyreiste nøkkelargumentet slik at x-aksen deles mellom alle subplottene.
  4. Lagre resultatet av funksjonen for å opprette subplots i variablene fig og axs (fra venstre til høyre).
  5. Plasser det første linjediagrammet for data_linear på første rad (rad 0) i subplot-rutenettet.
  6. Plasser det andre linjediagrammet for data_squared på andre rad (rad 1) i subplot-rutenettet.
  7. Plasser det tredje linjediagrammet for data_exp på tredje rad (rad 2) i subplot-rutenettet.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6

Spør AI

expand
ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

book
Delplott

Funksjonen subplots() fra pyplot har dette spesifikke formålet. Den ble tidligere brukt til å opprette et lerret i den første seksjonen, og nå skal vi se nærmere på den.

Rader og kolonner

De viktigste argumentene for denne funksjonen er nrows og ncolumns, som angir antall rader og kolonner i subplot-rutenettet. Som standard er begge satt til 1, slik at du får én enkelt plot (Axes).

Funksjonen subplots() returnerer et Figure-objekt og enten ett Axes-objekt eller et array av Axes-objekter, avhengig av størrelsen på rutenettet.

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

Et 2 x 2 subplot-rutenett ble opprettet.

Note
Merk

Siden det er flere underplott, returnerer subplots et array av Axes-objekter, vanligvis lagret i en variabel kalt axs (entall ax brukes for ett plott).

I dette tilfellet er axs et todimensjonalt array, så du trenger både rad- og kolonneindeks for å få tilgang til et bestemt underplott.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object 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

Første rad (rad 0) har to linjediagrammer, og andre rad (rad 1) har to spredningsdiagrammer.

Siden hvert diagram plasseres på en egen subplot, kan ikke plt.plot() eller plt.scatter() brukes direkte. Riktig tilnærming er å kalle den tilsvarende metoden på hvert enkelt Axes-objekt.

Konvertering til 1D-array

Det er også mulig å bruke .ravel()-metoden for å konvertere en todimensjonal Axes-array til et endimensjonalt sammenhengende flatt array:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object 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

Med et 2x2-array konverterer axs.ravel() det til et 1D-array som inneholder fire elementer.

Dele en akse

Funksjonen subplots() har også parameterne sharex og sharey. De styrer om x- eller y-aksene deles mellom subplottene. Begge er satt til False som standard.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot 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

Ved å sette sharex=True deles x-aksen mellom alle delplott, noe som er nyttig her fordi alle delplott bruker de samme x-akseverdiene.

Du kan også sette sharex eller sharey til 'row' for å dele aksen innenfor hver rad av delplott, eller 'col' for å dele den innenfor hver kolonne av delplott.

Note
Studer mer

Som vanlig kan du utforske mer i subplots() dokumentasjonen hvis du ønsker det.

Oppgave

Swipe to start coding

  1. Bruk riktig funksjon for å opprette et subplot-rutenett.
  2. Rutenettet skal ha 3 rader og 1 kolonne (angi de to første parameterne).
  3. Angi det høyreiste nøkkelargumentet slik at x-aksen deles mellom alle subplottene.
  4. Lagre resultatet av funksjonen for å opprette subplots i variablene fig og axs (fra venstre til høyre).
  5. Plasser det første linjediagrammet for data_linear på første rad (rad 0) i subplot-rutenettet.
  6. Plasser det andre linjediagrammet for data_squared på andre rad (rad 1) i subplot-rutenettet.
  7. Plasser det tredje linjediagrammet for data_exp på tredje rad (rad 2) i subplot-rutenettet.

Løsning

Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6
Switch to desktopBytt til skrivebordet for virkelighetspraksisFortsett der du er med et av alternativene nedenfor
Vi beklager at noe gikk galt. Hva skjedde?
some-alt