Python Academy · Les

Subplots en layouts

Combineer meerdere grafieken

Les 4 van 413 stappen

Subplots en layouts is een gratis Python Academy-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.

Waarom meerdere diagrammen

Vaak is één diagram niet genoeg. Misschien wil je verschillende weergaven naast elkaar vergelijken of een drukke grafiek opdelen in kleinere panelen. Matplotlib noemt dit het rangschikken van meerdere assen binnen één figuur.

Het belangrijkste hulpmiddel is plt.subplots(rows, cols).

Een raster met assen

fig, axes = plt.subplots(2, 3) maakt een figuur met een raster van 2 bij 3, dus met zes assen. Het resultaat axes is een tweedimensionale matrix die je indexeert zoals axes[0][1].

Het totale aantal panelen is gewoon het aantal rijen maal het aantal kolommen.

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

De assenmatrix indexeren

Met één rij is axes eendimensionaal: gebruik axes[0] en axes[1]. Bij een volledig raster is het tweedimensionaal: axes[row][col].

Voor één deelgrafiek is helemaal geen indexering nodig.

Door panelen itereren

Een nette aanpak is het raster af te vlakken en eroverheen te lussen, waarbij je elke as aan de bijbehorende gegevens koppelt. Zo voorkom je dat je bijna identieke code voor elk paneel herhaalt.

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)

Gedeelde assen

Wanneer panelen een schaal delen, geef je sharex=True of sharey=True door. De deelgrafieken gebruiken dan één gemeenschappelijk bereik, waardoor vergelijkingen eerlijker worden en overbodige maatstreeplabels verdwijnen.

Dit is ideaal voor gestapelde tijdreeksen.

Figuurgrootte voor rasters

Een raster heeft meer ruimte nodig dan één grafiek. Stel bij het aanroepen van subplots figsize=(width, height) in inches in. Een goede vuistregel is om de grootte af te stemmen op het aantal kolommen en rijen.

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

Ruimte tussen panelen

Panelen kunnen te dicht op elkaar staan. fig.tight_layout() lost de meeste gevallen automatisch op. Gebruik voor fijnere controle fig.subplots_adjust(wspace=0.4, hspace=0.4) om de horizontale en verticale tussenruimten in te stellen.

Grotere waarden betekenen meer ruimte tussen deelgrafieken.

Ongelijke indelingen met GridSpec

Niet elke indeling is een uniform raster. Met GridSpec kan één as meerdere rijen of kolommen overspannen, bijvoorbeeld een brede grafiek bovenaan en twee kleine eronder.

Je definieert het raster en snijdt het daarna net als een matrix aan om elke as te plaatsen.

Uitsneden plannen

Zie uitsneden van GridSpec als bereiken. Een grafiek bovenaan die alle kolommen overspant, is gs[0, :]; een grafiek linksonder is gs[1, 0]. Door de uitsneden eerst op papier te plannen, voorkom je verwarring.

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)

Eén figuur, één verhaal

Een figuur met meerdere panelen moet nog steeds één samenhangend verhaal vertellen. Gebruik een gedeelde fig.suptitle(), consistente kleuren en gedeelde schalen, zodat de panelen als één geheel worden gelezen in plaats van als een willekeurige collage.

Aanpassingen per paneel

Omdat elke cel zijn eigen as is, pas je ze onafhankelijk aan. axes[0][0].set_title('Sales') geeft alleen het paneel linksboven een titel, terwijl axes[1][1].set_ylabel('Cost') alleen het paneel rechtsonder labelt.

Deze onafhankelijkheid is precies waarom de objectgeoriënteerde stijl zo goed werkt met rasters.

Korte toets

Toets je begrip van indelingen met meerdere panelen.

Samenvatting

Je kunt nu diagrammen combineren:

  • plt.subplots(rows, cols) bouwt een raster met assen
  • Indexeer met axes[row][col] of vlak het raster af en lus erdoorheen
  • sharex/sharey stemmen schalen op elkaar af; figsize bepaalt de grootte van het raster
  • tight_layout en subplots_adjust regelen de tussenruimte
  • GridSpec maakt panelen mogelijk die meerdere cellen overspannen
Gratis beginnen

Leer Python met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
76
Lessen
320

Veelgestelde vragen

Is de les “Subplots en layouts” gratis?

Ja — de volledige tekst van “Subplots en layouts” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.

Wat leer ik in “Subplots en layouts”?

Combineer meerdere grafieken Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Python Academy te beginnen?

Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “Subplots en layouts”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Python Academy?

Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Figuren en assen
  2. Lijn-, staaf- en spreidingsdiagrammen
  3. Plots aanpassen
  4. Subplots en layouts
← Terug naar Python Academy