Underplott
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 den undersøkes nærmere.
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 graf (Axes).
Funksjonen subplots() returnerer et Figure-objekt og enten ett Axes-objekt eller et array av Axes-objekter, avhengig av størrelsen på rutenettet.
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 subplots, returnerer subplots et array av Axes-objekter, vanligvis lagret i en variabel kalt axs (entall ax brukes for én plot).
I dette tilfellet er axs et todimensjonalt array, så du trenger både rad- og kolonneindeks for å få tilgang til en bestemt subplot.
12345678910111213141516import 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()
Den første raden (rad 0) har to linjediagrammer, og den andre raden (rad 1) har to spredningsdiagrammer.
Siden hvert diagram plasseres på en egen subplot, kan ikke plt.plot() eller plt.scatter() brukes direkte. Den riktige tilnærmingen er å kalle den tilsvarende metoden på hvert enkelt Axes-objekt.
Konvertering til 1D-array
Det er også mulig å bruke .ravel()-metoden for å konvertere en 2D Axes-array til en 1D sammenhengende flatet array:
12345678910111213141516171819import 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()
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.
12345678910111213141516171819import 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()
Ved å sette sharex=True deles x-aksen mellom alle delplott, noe som er nyttig her siden 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.
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
Can you explain more about how to access individual subplots in a grid?
What happens if I create a grid with more rows and columns?
How do I customize the appearance of each subplot?
Awesome!
Completion rate improved to 3.85
Underplott
Sveip for å vise menyen
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 den undersøkes nærmere.
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 graf (Axes).
Funksjonen subplots() returnerer et Figure-objekt og enten ett Axes-objekt eller et array av Axes-objekter, avhengig av størrelsen på rutenettet.
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 subplots, returnerer subplots et array av Axes-objekter, vanligvis lagret i en variabel kalt axs (entall ax brukes for én plot).
I dette tilfellet er axs et todimensjonalt array, så du trenger både rad- og kolonneindeks for å få tilgang til en bestemt subplot.
12345678910111213141516import 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()
Den første raden (rad 0) har to linjediagrammer, og den andre raden (rad 1) har to spredningsdiagrammer.
Siden hvert diagram plasseres på en egen subplot, kan ikke plt.plot() eller plt.scatter() brukes direkte. Den riktige tilnærmingen er å kalle den tilsvarende metoden på hvert enkelt Axes-objekt.
Konvertering til 1D-array
Det er også mulig å bruke .ravel()-metoden for å konvertere en 2D Axes-array til en 1D sammenhengende flatet array:
12345678910111213141516171819import 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()
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.
12345678910111213141516171819import 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()
Ved å sette sharex=True deles x-aksen mellom alle delplott, noe som er nyttig her siden 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.
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