Subplots
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.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Er is een 2 bij 2 subplotraster gemaakt.
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.
1234567891011121314import 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()
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:
123456789fig, 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()
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.
123456789fig, 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()
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.
Zoals gebruikelijk kun je meer ontdekken in de
subplots() documentatie indien gewenst.
Swipe to start coding
- Gebruik de juiste functie om een subplotraster te maken.
- Het raster moet 3 rijen en 1 kolom hebben (specificeer de eerste twee parameters).
- Specificeer het meest rechtse keyword-argument zodat de x-as gedeeld wordt door alle subplots.
- Sla het resultaat van de functie voor het maken van subplots op in de variabelen
figenaxs(van links naar rechts). - Plaats de eerste lijngrafiek voor
data_linearop de eerste rij (rij0) van het subplotraster. - Plaats de tweede lijngrafiek voor
data_squaredop de tweede rij (rij1) van het subplotraster. - Plaats de derde lijngrafiek voor
data_expop de derde rij (rij2) van het subplotraster.
Oplossing
Bedankt voor je feedback!
single
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
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?
Geweldig!
Completion tarief verbeterd naar 3.85
Subplots
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.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Er is een 2 bij 2 subplotraster gemaakt.
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.
1234567891011121314import 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()
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:
123456789fig, 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()
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.
123456789fig, 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()
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.
Zoals gebruikelijk kun je meer ontdekken in de
subplots() documentatie indien gewenst.
Swipe to start coding
- Gebruik de juiste functie om een subplotraster te maken.
- Het raster moet 3 rijen en 1 kolom hebben (specificeer de eerste twee parameters).
- Specificeer het meest rechtse keyword-argument zodat de x-as gedeeld wordt door alle subplots.
- Sla het resultaat van de functie voor het maken van subplots op in de variabelen
figenaxs(van links naar rechts). - Plaats de eerste lijngrafiek voor
data_linearop de eerste rij (rij0) van het subplotraster. - Plaats de tweede lijngrafiek voor
data_squaredop de tweede rij (rij1) van het subplotraster. - Plaats de derde lijngrafiek voor
data_expop de derde rij (rij2) van het subplotraster.
Oplossing
Bedankt voor je feedback!
single