Python Academy · leksjon

Deldiagrammer og oppsett

Kombiner flere diagrammer

Leksjon 4 av 413 trinn

Deldiagrammer og oppsett er en gratis leksjon i Python Academy på CoddyKit. Dette er leksjon 4 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Python Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hvorfor flere diagrammer

Ofte er ikke ett diagram nok. Du vil kanskje sammenligne flere visninger side om side eller dele et uoversiktlig plott opp i mindre paneler. Matplotlib kaller dette å arrangere flere Axes i én Figure.

Hovedverktøyet er plt.subplots(rows, cols).

Et rutenett med Axes

fig, axes = plt.subplots(2, 3) oppretter en figur med et rutenett på 2 × 3, som gir deg seks akser. Resultatet axes er en todimensjonal matrise som du indekserer som axes[0][1].

Det totale antallet paneler er ganske enkelt antall rader ganger antall kolonner.

rows, cols = 2, 3
total = rows * cols
print('Grid', rows, 'x', cols, '=', total, 'axes')
for r in range(rows):
    for c in range(cols):
        print('panel at', (r, c))

Indeksere Axes-matrisen

Med én rad er axes endimensjonal: bruk axes[0], axes[1]. Med et fullstendig rutenett er den todimensjonal: axes[row][col].

For ett enkelt subplot trenger du ingen indeksering.

Iterere over paneler

Et ryddig mønster er å flate ut rutenettet og gå gjennom det i en løkke, der hvert Axes-objekt kobles til dataene sine. Da slipper du å gjenta nesten identisk kode for hvert panel.

datasets = ['A', 'B', 'C', 'D']
# imagine axes flattened to a list of 4
for i, name in enumerate(datasets):
    print('Plot dataset', name, 'on flat axes index', i)

Delte akser

Når panelene deler en skala, oppgir du sharex=True eller sharey=True. Subplottene bruker da ett felles område, noe som gjør sammenligningene rettferdige og fjerner overflødige inndelingsetiketter.

Dette passer utmerket for stablede tidsserier.

Figurstørrelse for rutenett

Et rutenett trenger mer plass enn ett enkelt plott. Angi figsize=(width, height) i tommer når du kaller subplots. En tommelfingerregel er å skalere størrelsen etter antallet kolonner og rader.

cols, rows = 3, 2
per_panel_w, per_panel_h = 3, 2.5
print('Suggested figsize:', (cols * per_panel_w, rows * per_panel_h))

Avstand mellom paneler

Panelene kan ligge tett inntil hverandre. fig.tight_layout() løser de fleste tilfeller automatisk. For mer finjustering kan du bruke fig.subplots_adjust(wspace=0.4, hspace=0.4) til å angi vannrette og loddrette mellomrom.

Større verdier betyr mer plass mellom subplottene.

Ujevne layouter med GridSpec

Ikke alle layouter er ensartede rutenett. GridSpec lar ett Axes-objekt strekke seg over flere rader eller kolonner, for eksempel et bredt diagram øverst og to små under.

Du definerer rutenettet og bruker deretter utsnitt av det, som fra en matrise, for å plassere hvert Axes-objekt.

Planlegge utsnitt

Tenk på GridSpec-utsnitt som områder. Et øverste diagram som strekker seg over alle kolonnene, er gs[0, :]; et diagram nederst til venstre er gs[1, 0]. Hvis du planlegger utsnittene på papir først, unngår du forvirring.

layout = {
    'header': '[0, :]   (full width)',
    'left':   '[1, 0]   (bottom left)',
    'right':  '[1, 1]   (bottom right)',
}
for name, slot in layout.items():
    print(name.ljust(7), slot)

Én figur, én historie

En figur med flere paneler bør fortsatt fortelle én samlet og sammenhengende historie. Bruk en felles fig.suptitle(), konsistente farger og delte skalaer, slik at panelene leses som en helhet og ikke som en tilfeldig kollasj.

Tilpasse hvert panel

Fordi hver celle er sitt eget Axes-objekt, kan du tilpasse dem uavhengig av hverandre. axes[0][0].set_title('Sales') gir bare panelet øverst til venstre en tittel, mens axes[1][1].set_ylabel('Cost') bare merker panelet nederst til høyre.

Denne uavhengigheten er nettopp grunnen til at den objektorienterte stilen fungerer så godt med rutenett.

Hurtigsjekk

Test forståelsen din av layouter med flere paneler.

Oppsummering

Du kan nå kombinere diagrammer:

  • plt.subplots(rows, cols) bygger et rutenett med akser
  • Indekser med axes[row][col], eller flat ut rutenettet og bruk en løkke
  • sharex/sharey samordner skalaer; figsize angir størrelsen på rutenettet
  • tight_layout og subplots_adjust styrer mellomrom
  • GridSpec gjør det mulig å lage paneler som strekker seg over flere celler
Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
76
Leksjoner
320

Ofte stilte spørsmål

Er leksjonen «Deldiagrammer og oppsett» gratis?

Ja – hele teksten i «Deldiagrammer og oppsett» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Python Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Python Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «Deldiagrammer og oppsett»?

Kombiner flere diagrammer Du øver på Python Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Python Academy?

Ingen tidligere erfaring er nødvendig. Python Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.

Hvor lang tid tar leksjonen «Deldiagrammer og oppsett»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Python Academy-leksjonen?

Ja. Alle Python Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. Figurer og akser
  2. Linje-, stolpe- og spredningsdiagrammer
  3. Tilpasse diagrammer
  4. Deldiagrammer og oppsett
← Tilbake til Python Academy