Underplots
Funktionen subplots() fra pyplot bruges til at oprette flere plots i én figur. Du har allerede set den ved oprettelse af et lærred; nu undersøger vi den mere detaljeret.
Rækker og kolonner
De vigtigste argumenter er nrows og ncolumns, som definerer subplot-gitteret. Som standard er begge sat til 1, hvilket giver en enkelt Axes.
subplots() returnerer et Figure-objekt og enten ét Axes-objekt eller et array af dem, afhængigt af layoutet.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Et 2 gange 2 subplot-gitter blev oprettet.
Da der er flere subplots, returnerer subplots et array af Axes-objekter, som normalt gemmes i en variabel kaldet axs (entalsformen ax bruges til én plot).
I dette tilfælde er axs et todimensionelt array, så du skal bruge både række- og kolonneindeks for at få adgang til et specifikt subplot.
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()
Den første række indeholder to linjediagrammer; den anden række indeholder to spredningsdiagrammer.
Hvert diagram skal tegnes ved hjælp af metoden for det tilsvarende Axes-objekt, ikke plt.plot() eller plt.scatter().
Konvertering til 1D-array
Du kan udflade det 2D Axes-array ved at bruge .ravel() for at forenkle indeksering:
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, der indeholder fire elementer.
Deling af en akse
Funktionen subplots() har også parametrene sharex og sharey. De styrer, om x- eller y-aksen deles på tværs af delgrafer. Begge er som standard sat til False.
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()
Indstilling af sharex=True deler x-aksen på tværs af alle delgrafer.
Du kan også angive 'row' eller 'col' for kun at dele akser inden for rækker eller kolonner.
Som sædvanlig er du velkommen til at udforske mere i
subplots() dokumentationen hvis du ønsker det.
Swipe to start coding
- Brug den korrekte funktion til at oprette et subplot-gitter.
- Gitteret skal have 3 rækker og 1 kolonne (angiv de to første parametre).
- Angiv det yderste højre nøgleord-argument, så x-aksen deles mellem alle subplots.
- Gem resultatet af funktionen til oprettelse af subplots i variablerne
figogaxs(fra venstre mod højre). - Placer det første linjediagram for
data_linearpå den første række (række0) i subplot-gitteret. - Placer det andet linjediagram for
data_squaredpå den anden række (række1) i subplot-gitteret. - Placer det tredje linjediagram for
data_exppå den tredje række (række2) i subplot-gitteret.
Løsning
Tak for dine kommentarer!
single
Spørg AI
Spørg AI
Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat
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?
Fantastisk!
Completion rate forbedret til 3.85
Underplots
Stryg for at vise menuen
Funktionen subplots() fra pyplot bruges til at oprette flere plots i én figur. Du har allerede set den ved oprettelse af et lærred; nu undersøger vi den mere detaljeret.
Rækker og kolonner
De vigtigste argumenter er nrows og ncolumns, som definerer subplot-gitteret. Som standard er begge sat til 1, hvilket giver en enkelt Axes.
subplots() returnerer et Figure-objekt og enten ét Axes-objekt eller et array af dem, afhængigt af layoutet.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Et 2 gange 2 subplot-gitter blev oprettet.
Da der er flere subplots, returnerer subplots et array af Axes-objekter, som normalt gemmes i en variabel kaldet axs (entalsformen ax bruges til én plot).
I dette tilfælde er axs et todimensionelt array, så du skal bruge både række- og kolonneindeks for at få adgang til et specifikt subplot.
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()
Den første række indeholder to linjediagrammer; den anden række indeholder to spredningsdiagrammer.
Hvert diagram skal tegnes ved hjælp af metoden for det tilsvarende Axes-objekt, ikke plt.plot() eller plt.scatter().
Konvertering til 1D-array
Du kan udflade det 2D Axes-array ved at bruge .ravel() for at forenkle indeksering:
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, der indeholder fire elementer.
Deling af en akse
Funktionen subplots() har også parametrene sharex og sharey. De styrer, om x- eller y-aksen deles på tværs af delgrafer. Begge er som standard sat til False.
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()
Indstilling af sharex=True deler x-aksen på tværs af alle delgrafer.
Du kan også angive 'row' eller 'col' for kun at dele akser inden for rækker eller kolonner.
Som sædvanlig er du velkommen til at udforske mere i
subplots() dokumentationen hvis du ønsker det.
Swipe to start coding
- Brug den korrekte funktion til at oprette et subplot-gitter.
- Gitteret skal have 3 rækker og 1 kolonne (angiv de to første parametre).
- Angiv det yderste højre nøgleord-argument, så x-aksen deles mellem alle subplots.
- Gem resultatet af funktionen til oprettelse af subplots i variablerne
figogaxs(fra venstre mod højre). - Placer det første linjediagram for
data_linearpå den første række (række0) i subplot-gitteret. - Placer det andet linjediagram for
data_squaredpå den anden række (række1) i subplot-gitteret. - Placer det tredje linjediagram for
data_exppå den tredje række (række2) i subplot-gitteret.
Løsning
Tak for dine kommentarer!
single