Python Academy · Lektion

Delplottar och layouter

Kombinera flera diagram

Lektion 4 av 413 steg

Delplottar och layouter är en gratis lektion i Python Academy på CoddyKit. Detta är lektion 4 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Python Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Python Academy innehåller totalt 4 lektioner.

Varför flera diagram

Ofta räcker inte ett diagram. Ni kanske vill jämföra flera vyer sida vid sida eller dela upp ett överbelastat diagram i mindre paneler. Matplotlib kallar detta att ordna flera Axes inuti en Figure.

Det viktigaste verktyget är plt.subplots(rows, cols).

Ett rutnät av Axes

fig, axes = plt.subplots(2, 3) skapar en figur med ett rutnät på 2 gånger 3, vilket ger sex Axes. Resultatet axes är en tvådimensionell array som Ni indexerar som axes[0][1].

Det totala antalet paneler är helt enkelt antal rader multiplicerat med antal kolumner.

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))

Indexera Axes-arrayen

Med en enda rad är axes endimensionell: använd axes[0], axes[1]. Med ett fullständigt rutnät är den tvådimensionell: axes[row][col].

För en enda subplot behövs ingen indexering alls.

Iterera över paneler

Ett tydligt mönster är att platta till rutnätet och iterera över det, samtidigt som varje Axes kopplas ihop med sina data. Då slipper Ni upprepa nästan identisk kod för varje 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)

Delade axlar

När paneler delar en skala anger Ni sharex=True eller sharey=True. Subplots använder då ett gemensamt intervall, vilket gör jämförelser rättvisa och tar bort överflödiga skalstrecksetiketter.

Detta passar utmärkt för staplade tidsserier.

Figurens storlek för rutnät

Ett rutnät behöver mer utrymme än ett enskilt diagram. Ange figsize=(width, height) i tum när Ni anropar subplots. En tumregel är att skala storleken efter antalet kolumner och 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))

Avstånd mellan paneler

Panelerna kan hamna för tätt. fig.tight_layout() löser de flesta fall automatiskt. För mer detaljerad kontroll använder Ni fig.subplots_adjust(wspace=0.4, hspace=0.4) för att ange vågräta och lodräta mellanrum.

Högre värden innebär mer utrymme mellan subplots.

Ojämna layouter med GridSpec

Alla layouter är inte jämna rutnät. GridSpec låter ett Axes sträcka sig över flera rader eller kolumner, till exempel ett brett diagram överst och två små under det.

Ni definierar rutnätet och indexerar det sedan som en array för att placera varje Axes.

Planera spann

Betrakta GridSpec-snitt som intervall. Ett diagram överst som sträcker sig över alla kolumner är gs[0, :]; ett diagram nere till vänster är gs[1, 0]. Om Ni planerar snitten på papper först undviker Ni förvirring.

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)

En figur, en berättelse

En figur med flera paneler bör fortfarande berätta en enda sammanhängande berättelse. Använd en gemensam fig.suptitle(), konsekventa färger och gemensamma skalor så att panelerna uppfattas som en helhet i stället för ett slumpmässigt collage.

Anpassning per panel

Eftersom varje cell är ett eget Axes kan Ni anpassa dem separat. axes[0][0].set_title('Sales') anger bara rubriken för panelen längst upp till vänster, medan axes[1][1].set_ylabel('Cost') märker bara axeln i panelen längst ned till höger.

Det är just denna självständighet som gör den objektorienterade stilen så användbar med rutnät.

Snabbkontroll

Testa Er förståelse av layouter med flera paneler.

Sammanfattning

Nu kan Ni kombinera diagram:

  • plt.subplots(rows, cols) bygger ett rutnät av Axes
  • Indexera med axes[row][col] eller platta till arrayen och iterera
  • sharex/sharey samordnar skalorna; figsize anger rutnätets storlek
  • tight_layout och subplots_adjust hanterar avstånden
  • GridSpec möjliggör paneler som sträcker sig över flera celler
Gratis att börja

Lär dig Python med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
76
Lektioner
320

Vanliga frågor

Är lektionen ”Delplottar och layouter” gratis?

Ja – hela texten till ”Delplottar och layouter” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Python Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Python Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”Delplottar och layouter”?

Kombinera flera diagram Ni övar på Python Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Python Academy?

Du behöver inga förkunskaper. Utbildningen i Python Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Delplottar och layouter”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Python Academy-lektionen?

Ja. Varje Python Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Figurer och axlar
  2. Linje-, stapel- och spridningsdiagram
  3. Anpassa diagram
  4. Delplottar och layouter
← Tillbaka till Python Academy