Subplots en layouts
Combineer meerdere grafieken
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/shareystemmen schalen op elkaar af;figsizebepaalt de grootte van het rastertight_layoutensubplots_adjustregelen de tussenruimteGridSpecmaakt panelen mogelijk die meerdere cellen overspannen
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
- Figuren en assen
- Lijn-, staaf- en spreidingsdiagrammen
- Plots aanpassen
- Subplots en layouts