Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Underplots | Tilpasning af Plots
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Ultimativ Visualisering med Python

bookUnderplots

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.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Et 2 gange 2 subplot-gitter blev oprettet.

Note
Bemærk

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.

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

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:

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, 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.

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

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.

Note
Undersøg Mere

Som sædvanlig er du velkommen til at udforske mere i subplots() dokumentationen hvis du ønsker det.

Opgave

Swipe to start coding

  1. Brug den korrekte funktion til at oprette et subplot-gitter.
  2. Gitteret skal have 3 rækker og 1 kolonne (angiv de to første parametre).
  3. Angiv det yderste højre nøgleord-argument, så x-aksen deles mellem alle subplots.
  4. Gem resultatet af funktionen til oprettelse af subplots i variablerne fig og axs (fra venstre mod højre).
  5. Placer det første linjediagram for data_linear på den første række (række 0) i subplot-gitteret.
  6. Placer det andet linjediagram for data_squared på den anden række (række 1) i subplot-gitteret.
  7. Placer det tredje linjediagram for data_exp på den tredje række (række 2) i subplot-gitteret.

Løsning

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 6
single

single

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Suggested prompts:

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?

close

bookUnderplots

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.

12345
import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
copy

Et 2 gange 2 subplot-gitter blev oprettet.

Note
Bemærk

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.

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

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:

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, 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.

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

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.

Note
Undersøg Mere

Som sædvanlig er du velkommen til at udforske mere i subplots() dokumentationen hvis du ønsker det.

Opgave

Swipe to start coding

  1. Brug den korrekte funktion til at oprette et subplot-gitter.
  2. Gitteret skal have 3 rækker og 1 kolonne (angiv de to første parametre).
  3. Angiv det yderste højre nøgleord-argument, så x-aksen deles mellem alle subplots.
  4. Gem resultatet af funktionen til oprettelse af subplots i variablerne fig og axs (fra venstre mod højre).
  5. Placer det første linjediagram for data_linear på den første række (række 0) i subplot-gitteret.
  6. Placer det andet linjediagram for data_squared på den anden række (række 1) i subplot-gitteret.
  7. Placer det tredje linjediagram for data_exp på den tredje række (række 2) i subplot-gitteret.

Løsning

Switch to desktopSkift til skrivebord for at øve i den virkelige verdenFortsæt der, hvor du er, med en af nedenstående muligheder
Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 6
single

single

some-alt