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
Ultimat Visualisering med Python

bookDelplott

Funksjonen subplots() fra pyplot brukes til å lage flere plott i én figur. Du har allerede sett den ved opprettelse av et lerret; nå ser vi nærmere på den.

Rader og kolonner

De viktigste argumentene er nrows og ncolumns, som definerer rutenettet for underplottene. Som standard er begge satt til 1, noe som gir én enkelt Axes. subplots() returnerer et Figure-objekt og enten ett Axes-objekt eller et array av dem, avhengig av oppsettet.

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.

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

Første rad inneholder to linjediagrammer; andre rad inneholder to spredningsdiagrammer. Hvert diagram må tegnes ved å bruke metoden til det tilsvarende Axes-objektet, ikke plt.plot() eller plt.scatter().

Konvertering til 1D-array

Du kan flate ut det todimensjonale Axes-arrayet ved å bruke .ravel() for å forenkle indekseringen:

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

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. Disse styrer om x- eller y-aksene deles mellom subplottene. Begge er satt til False som standard.

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

Ved å sette sharex=True deles x-aksen mellom alle delplott. Du kan også bruke 'row' eller 'col' for å dele akser kun innenfor rader eller kolonner.

Note
Studer mer

Som vanlig, utforsk gjerne 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

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6
single

single

Spør AI

expand

Spør AI

ChatGPT

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

close

bookDelplott

Sveip for å vise menyen

Funksjonen subplots() fra pyplot brukes til å lage flere plott i én figur. Du har allerede sett den ved opprettelse av et lerret; nå ser vi nærmere på den.

Rader og kolonner

De viktigste argumentene er nrows og ncolumns, som definerer rutenettet for underplottene. Som standard er begge satt til 1, noe som gir én enkelt Axes. subplots() returnerer et Figure-objekt og enten ett Axes-objekt eller et array av dem, avhengig av oppsettet.

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.

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

Første rad inneholder to linjediagrammer; andre rad inneholder to spredningsdiagrammer. Hvert diagram må tegnes ved å bruke metoden til det tilsvarende Axes-objektet, ikke plt.plot() eller plt.scatter().

Konvertering til 1D-array

Du kan flate ut det todimensjonale Axes-arrayet ved å bruke .ravel() for å forenkle indekseringen:

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

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. Disse styrer om x- eller y-aksene deles mellom subplottene. Begge er satt til False som standard.

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

Ved å sette sharex=True deles x-aksen mellom alle delplott. Du kan også bruke 'row' eller 'col' for å dele akser kun innenfor rader eller kolonner.

Note
Studer mer

Som vanlig, utforsk gjerne 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
single

single

some-alt