Subplots
De functie subplots() van pyplot dient dit specifieke doel. Deze werd eerder gebruikt om een canvas te maken in de eerste sectie en zal nu in meer detail worden bekeken.
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.
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.
12345678910111213141516import 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()
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 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:
12345678910111213141516171819import 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()
Met een 2x2-array zet axs.ravel() deze om in 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.
12345678910111213141516171819import 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()
Door sharex=True in te stellen, wordt de x-as gedeeld over alle subplots. Dit is handig omdat alle subplots dezelfde x-aswaarden 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.
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 a grid?
What happens if I create a grid with more rows and columns?
How do I customize the appearance of each subplot?
Awesome!
Completion rate improved to 3.85
Subplots
Veeg om het menu te tonen
De functie subplots() van pyplot dient dit specifieke doel. Deze werd eerder gebruikt om een canvas te maken in de eerste sectie en zal nu in meer detail worden bekeken.
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.
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.
12345678910111213141516import 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()
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 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:
12345678910111213141516171819import 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()
Met een 2x2-array zet axs.ravel() deze om in 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.
12345678910111213141516171819import 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()
Door sharex=True in te stellen, wordt de x-as gedeeld over alle subplots. Dit is handig omdat alle subplots dezelfde x-aswaarden 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.
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