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

Veeg om het menu te tonen

book
Subplots

De functie subplots() van pyplot dient dit specifieke doel. Deze werd eerder gebruikt om een canvas te creëren in de eerste sectie, en zal nu in meer detail worden onderzocht.

Rijen en Kolommen

De belangrijkste argumenten van deze functie zijn nrows en ncolumns, waarmee het aantal rijen en kolommen in het subplotraster wordt ingesteld. Standaard zijn beide 1, waardoor je één enkele plot (Axes) krijgt.

De functie subplots() retourneert een Figure-object en ofwel één Axes-object of een array van Axes-objecten, afhankelijk van de grootte van het raster.

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

Er is een 2 bij 2 subplotraster aangemaakt.

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 kolomindex nodig om een specifieke subplot te benaderen.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object 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 (rij 0) bevat twee lijndiagrammen en de tweede rij (rij 1) bevat twee spreidingsdiagrammen.

Aangezien elke plot op een afzonderlijke subplot wordt geplaatst, kunnen plt.plot() of plt.scatter() niet direct worden gebruikt. De juiste aanpak is om de overeenkomstige methode aan te roepen op elk individueel Axes-object.

Omzetten naar een 1D-array

Het is ook mogelijk om de .ravel()-methode te gebruiken om een 2D Axes-array om te zetten naar een 1D aaneengesloten afgevlakte array:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object 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 naar een 1D-array met vier elementen.

Assen delen

De functie subplots() heeft ook de parameters sharex en sharey. Hiermee wordt bepaald of de x- of y-as gedeeld wordt tussen subplots. Beide staan standaard op False.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot 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

Door sharex=True in te stellen, wordt de x-as gedeeld over alle subplots. Dit is handig omdat alle subplots dezelfde x-as waarden gebruiken.

Je kunt sharex of sharey ook instellen op 'row' om de as binnen elke rij van subplots te delen, of op 'col' om deze binnen elke kolom van subplots te delen.

Note
Meer Bestuderen

Zoals gebruikelijk kun je meer ontdekken in de subplots() documentatie indien je verder wilt verdiepen.

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

Vraag AI

expand
ChatGPT

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

book
Subplots

De functie subplots() van pyplot dient dit specifieke doel. Deze werd eerder gebruikt om een canvas te creëren in de eerste sectie, en zal nu in meer detail worden onderzocht.

Rijen en Kolommen

De belangrijkste argumenten van deze functie zijn nrows en ncolumns, waarmee het aantal rijen en kolommen in het subplotraster wordt ingesteld. Standaard zijn beide 1, waardoor je één enkele plot (Axes) krijgt.

De functie subplots() retourneert een Figure-object en ofwel één Axes-object of een array van Axes-objecten, afhankelijk van de grootte van het raster.

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

Er is een 2 bij 2 subplotraster aangemaakt.

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 kolomindex nodig om een specifieke subplot te benaderen.

12345678910111213141516
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Creating a different plot for each Axes object 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 (rij 0) bevat twee lijndiagrammen en de tweede rij (rij 1) bevat twee spreidingsdiagrammen.

Aangezien elke plot op een afzonderlijke subplot wordt geplaatst, kunnen plt.plot() of plt.scatter() niet direct worden gebruikt. De juiste aanpak is om de overeenkomstige methode aan te roepen op elk individueel Axes-object.

Omzetten naar een 1D-array

Het is ook mogelijk om de .ravel()-methode te gebruiken om een 2D Axes-array om te zetten naar een 1D aaneengesloten afgevlakte array:

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Creating a 2x2 subplot grid fig, axs = plt.subplots(2, 2) # Flattening axs to a 1D array for easier indexing axs = axs.ravel() # Creating a different plot for each Axes object 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 naar een 1D-array met vier elementen.

Assen delen

De functie subplots() heeft ook de parameters sharex en sharey. Hiermee wordt bepaald of de x- of y-as gedeeld wordt tussen subplots. Beide staan standaard op False.

12345678910111213141516171819
import matplotlib.pyplot as plt import numpy as np data_linear = np.arange(1, 11) data_squared = data_linear ** 2 # Create a 2x2 subplot grid with shared x-axis across all subplots fig, axs = plt.subplots(2, 2, sharex=True) # Flatten axs array for easier indexing axs = axs.ravel() # Plotting different data on each subplot 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

Door sharex=True in te stellen, wordt de x-as gedeeld over alle subplots. Dit is handig omdat alle subplots dezelfde x-as waarden gebruiken.

Je kunt sharex of sharey ook instellen op 'row' om de as binnen elke rij van subplots te delen, of op 'col' om deze binnen elke kolom van subplots te delen.

Note
Meer Bestuderen

Zoals gebruikelijk kun je meer ontdekken in de subplots() documentatie indien je verder wilt verdiepen.

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
Switch to desktopSchakel over naar desktop voor praktijkervaringGa verder vanaf waar je bent met een van de onderstaande opties
Onze excuses dat er iets mis is gegaan. Wat is er gebeurd?
some-alt