Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Leer Subplots | Aanpassen van Plots
Ultieme Visualisatie met Python

bookSubplots

De functie subplots() van pyplot wordt gebruikt om meerdere grafieken in één figuur te maken. Je hebt deze al gezien bij het aanmaken van een canvas; nu bekijken we deze functie in meer detail.

Rijen en kolommen

De belangrijkste argumenten zijn nrows en ncolumns, die het raster van subplots definiëren. Standaard zijn beide 1, wat resulteert in een enkele Axes. subplots() retourneert een Figure en ofwel één Axes-object of een array daarvan, afhankelijk van de indeling.

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

Er is een 2 bij 2 subplotraster gemaakt.

Note
Opmerking

Omdat er meerdere subplots zijn, retourneert subplots een array van Axes-objecten, meestal opgeslagen in een variabele genaamd axs (enkelvoud ax is voor één plot).

In dit geval is axs een tweedimensionale array, dus zijn zowel een rij- als een kolomindex nodig om een specifieke subplot te benaderen.

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

De eerste rij bevat twee lijndiagrammen; de tweede rij bevat twee spreidingsdiagrammen. Elke plot moet worden getekend met de methode van het bijbehorende Axes-object, niet met plt.plot() of plt.scatter().

Omzetten naar een 1D-array

Je kunt de 2D Axes-array afvlakken met .ravel() om het indexeren te vereenvoudigen:

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

Met een 2x2-array zet axs.ravel() deze om in een 1D-array met vier elementen.

Een as delen

De functie subplots() heeft ook de parameters sharex en sharey. Hiermee wordt bepaald of de x- of y-assen gedeeld worden tussen subplots. Beide staan standaard op 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

Met sharex=True wordt de x-as gedeeld tussen alle subplots. Het is ook mogelijk om 'row' of 'col' te gebruiken om assen alleen binnen rijen of kolommen te delen.

Note
Meer Bestuderen

Zoals gebruikelijk kun je meer ontdekken in de subplots() documentatie indien gewenst.

Taak

Swipe to start coding

  1. Gebruik de juiste functie om een subplotraster te maken.
  2. Het raster moet 3 rijen en 1 kolom hebben (specificeer de eerste twee parameters).
  3. Specificeer het meest rechtse keyword-argument zodat de x-as gedeeld wordt door alle subplots.
  4. Sla het resultaat van de functie voor het maken van subplots op in de variabelen fig en axs (van links naar rechts).
  5. Plaats de eerste lijngrafiek voor data_linear op de eerste rij (rij 0) van het subplotraster.
  6. Plaats de tweede lijngrafiek voor data_squared op de tweede rij (rij 1) van het subplotraster.
  7. Plaats de derde lijngrafiek voor data_exp op de derde rij (rij 2) van het subplotraster.

Oplossing

Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 6
single

single

Vraag AI

expand

Vraag AI

ChatGPT

Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.

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

bookSubplots

Veeg om het menu te tonen

De functie subplots() van pyplot wordt gebruikt om meerdere grafieken in één figuur te maken. Je hebt deze al gezien bij het aanmaken van een canvas; nu bekijken we deze functie in meer detail.

Rijen en kolommen

De belangrijkste argumenten zijn nrows en ncolumns, die het raster van subplots definiëren. Standaard zijn beide 1, wat resulteert in een enkele Axes. subplots() retourneert een Figure en ofwel één Axes-object of een array daarvan, afhankelijk van de indeling.

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

Er is een 2 bij 2 subplotraster gemaakt.

Note
Opmerking

Omdat er meerdere subplots zijn, retourneert subplots een array van Axes-objecten, meestal opgeslagen in een variabele genaamd axs (enkelvoud ax is voor één plot).

In dit geval is axs een tweedimensionale array, dus zijn zowel een rij- als een kolomindex nodig om een specifieke subplot te benaderen.

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

De eerste rij bevat twee lijndiagrammen; de tweede rij bevat twee spreidingsdiagrammen. Elke plot moet worden getekend met de methode van het bijbehorende Axes-object, niet met plt.plot() of plt.scatter().

Omzetten naar een 1D-array

Je kunt de 2D Axes-array afvlakken met .ravel() om het indexeren te vereenvoudigen:

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

Met een 2x2-array zet axs.ravel() deze om in een 1D-array met vier elementen.

Een as delen

De functie subplots() heeft ook de parameters sharex en sharey. Hiermee wordt bepaald of de x- of y-assen gedeeld worden tussen subplots. Beide staan standaard op 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

Met sharex=True wordt de x-as gedeeld tussen alle subplots. Het is ook mogelijk om 'row' of 'col' te gebruiken om assen alleen binnen rijen of kolommen te delen.

Note
Meer Bestuderen

Zoals gebruikelijk kun je meer ontdekken in de subplots() documentatie indien gewenst.

Taak

Swipe to start coding

  1. Gebruik de juiste functie om een subplotraster te maken.
  2. Het raster moet 3 rijen en 1 kolom hebben (specificeer de eerste twee parameters).
  3. Specificeer het meest rechtse keyword-argument zodat de x-as gedeeld wordt door alle subplots.
  4. Sla het resultaat van de functie voor het maken van subplots op in de variabelen fig en axs (van links naar rechts).
  5. Plaats de eerste lijngrafiek voor data_linear op de eerste rij (rij 0) van het subplotraster.
  6. Plaats de tweede lijngrafiek voor data_squared op de tweede rij (rij 1) van het subplotraster.
  7. Plaats de derde lijngrafiek voor data_exp op de derde rij (rij 2) van het subplotraster.

Oplossing

Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Was alles duidelijk?

Hoe kunnen we het verbeteren?

Bedankt voor je feedback!

Sectie 3. Hoofdstuk 6
single

single

some-alt