Underplots
Funktionen subplots() fra pyplot tjener dette specifikke formål. Den blev tidligere brugt til at oprette et lærred i det første afsnit, og nu vil den blive undersøgt mere detaljeret.
Rækker og kolonner
De vigtigste argumenter for denne funktion er nrows og ncolumns, som angiver antallet af rækker og kolonner i subplot-gitteret. Som standard er begge sat til 1, så du får et enkelt plot (Axes).
Funktionen subplots() returnerer et Figure-objekt og enten et Axes-objekt eller et array af Axes-objekter, afhængigt af gitterets størrelse.
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.
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 række (række 0) har to linjediagrammer, og den anden række (række 1) har to spredningsdiagrammer.
Da hvert diagram placeres på et separat subplot, kan plt.plot() eller plt.scatter() ikke anvendes direkte. Den korrekte tilgang er at kalde den tilsvarende metode på hvert enkelt Axes-objekt.
Konvertering til 1D-array
Det er også muligt at bruge .ravel()-metoden til at konvertere et 2D Axes-array til et 1D sammenhængende fladet 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, 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 underplots. Begge er som standard sat til False.
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()
Indstillingen sharex=True deler x-aksen på alle delgrafer, hvilket er nyttigt her, da alle delgrafer bruger de samme x-akseværdier.
Du kan også sætte sharex eller sharey til 'row' for at dele aksen inden for hver række af delgrafer, eller 'col' for at dele den inden for hver kolonne af delgrafer.
Som sædvanligt 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
Awesome!
Completion rate improved to 3.85
Underplots
Stryg for at vise menuen
Funktionen subplots() fra pyplot tjener dette specifikke formål. Den blev tidligere brugt til at oprette et lærred i det første afsnit, og nu vil den blive undersøgt mere detaljeret.
Rækker og kolonner
De vigtigste argumenter for denne funktion er nrows og ncolumns, som angiver antallet af rækker og kolonner i subplot-gitteret. Som standard er begge sat til 1, så du får et enkelt plot (Axes).
Funktionen subplots() returnerer et Figure-objekt og enten et Axes-objekt eller et array af Axes-objekter, afhængigt af gitterets størrelse.
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.
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 række (række 0) har to linjediagrammer, og den anden række (række 1) har to spredningsdiagrammer.
Da hvert diagram placeres på et separat subplot, kan plt.plot() eller plt.scatter() ikke anvendes direkte. Den korrekte tilgang er at kalde den tilsvarende metode på hvert enkelt Axes-objekt.
Konvertering til 1D-array
Det er også muligt at bruge .ravel()-metoden til at konvertere et 2D Axes-array til et 1D sammenhængende fladet 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, 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 underplots. Begge er som standard sat til False.
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()
Indstillingen sharex=True deler x-aksen på alle delgrafer, hvilket er nyttigt her, da alle delgrafer bruger de samme x-akseværdier.
Du kan også sætte sharex eller sharey til 'row' for at dele aksen inden for hver række af delgrafer, eller 'col' for at dele den inden for hver kolonne af delgrafer.
Som sædvanligt 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