Delplott
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.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Et 2 x 2 subplot-rutenett ble opprettet.
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.
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()
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:
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()
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.
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()
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.
Som vanlig, utforsk gjerne mer i
subplots() dokumentasjonen hvis du ønsker det.
Swipe to start coding
- Bruk riktig funksjon for å opprette et subplot-rutenett.
- Rutenettet skal ha 3 rader og 1 kolonne (angi de to første parameterne).
- Angi det høyreiste nøkkelargumentet slik at x-aksen deles mellom alle subplottene.
- Lagre resultatet av funksjonen for å opprette subplots i variablene
figogaxs(fra venstre til høyre). - Plasser det første linjediagrammet for
data_linearpå første rad (rad0) i subplot-rutenettet. - Plasser det andre linjediagrammet for
data_squaredpå andre rad (rad1) i subplot-rutenettet. - Plasser det tredje linjediagrammet for
data_exppå tredje rad (rad2) i subplot-rutenettet.
Løsning
Takk for tilbakemeldingene dine!
single
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
Fantastisk!
Completion rate forbedret til 3.85
Delplott
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.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Et 2 x 2 subplot-rutenett ble opprettet.
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.
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()
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:
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()
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.
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()
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.
Som vanlig, utforsk gjerne mer i
subplots() dokumentasjonen hvis du ønsker det.
Swipe to start coding
- Bruk riktig funksjon for å opprette et subplot-rutenett.
- Rutenettet skal ha 3 rader og 1 kolonne (angi de to første parameterne).
- Angi det høyreiste nøkkelargumentet slik at x-aksen deles mellom alle subplottene.
- Lagre resultatet av funksjonen for å opprette subplots i variablene
figogaxs(fra venstre til høyre). - Plasser det første linjediagrammet for
data_linearpå første rad (rad0) i subplot-rutenettet. - Plasser det andre linjediagrammet for
data_squaredpå andre rad (rad1) i subplot-rutenettet. - Plasser det tredje linjediagrammet for
data_exppå tredje rad (rad2) i subplot-rutenettet.
Løsning
Takk for tilbakemeldingene dine!
single