Delplottar
Funktionen subplots() från pyplot används för att skapa flera diagram i en och samma figur. Du har redan sett den vid skapandet av en canvas; nu undersöker vi den mer i detalj.
Rader och kolumner
De viktigaste argumenten är nrows och ncolumns, som definierar rutnätet för delplottarna. Som standard är båda 1, vilket ger en enda Axes.
subplots() returnerar en Figure och antingen ett Axes-objekt eller en array av dessa, beroende på layouten.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Ett 2 gånger 2 subplot-nät skapades.
Eftersom det finns flera subplots returnerar subplots en array av Axes-objekt, som vanligtvis lagras i en variabel som kallas axs (singular ax används för en plot).
I detta fall är axs en tvådimensionell array, så du behöver både rad- och kolumnindex för att komma åt en specifik subplot.
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()
Den första raden innehåller två linjediagram; den andra raden innehåller två spridningsdiagram.
Varje diagram måste ritas med metoden för det motsvarande Axes-objektet, inte plt.plot() eller plt.scatter().
Omvandling till 1D-array
Du kan platta ut den tvådimensionella Axes-arrayen med .ravel() för att förenkla indexeringen:
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()
Med en 2x2-array omvandlar axs.ravel() den till en endimensionell array med fyra element.
Dela en axel
Funktionen subplots() har även parametrarna sharex och sharey. Dessa styr om x- eller y-axlarna delas mellan delgrafer. Båda är som standard satta till 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()
Inställningen sharex=True delar x-axeln mellan alla delplottar.
Det går även att ange 'row' eller 'col' för att endast dela axlar inom rader eller kolumner.
Som vanligt är du välkommen att utforska mer i
subplots()-dokumentationen om du vill.
Swipe to start coding
- Använd rätt funktion för att skapa ett subplot-nät.
- Nätet ska ha 3 rader och 1 kolumn (ange de två första parametrarna).
- Ange det högra nyckelordet så att x-axeln delas mellan alla subplots.
- Spara resultatet av funktionen för att skapa subplots i variablerna
figochaxs(från vänster till höger). - Placera det första linjediagrammet för
data_linearpå den första raden (rad0) i subplot-nätet. - Placera det andra linjediagrammet för
data_squaredpå den andra raden (rad1) i subplot-nätet. - Placera det tredje linjediagrammet för
data_exppå den tredje raden (rad2) i subplot-nätet.
Lösning
Tack för dina kommentarer!
single
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Fantastiskt!
Completion betyg förbättrat till 3.85
Delplottar
Svep för att visa menyn
Funktionen subplots() från pyplot används för att skapa flera diagram i en och samma figur. Du har redan sett den vid skapandet av en canvas; nu undersöker vi den mer i detalj.
Rader och kolumner
De viktigaste argumenten är nrows och ncolumns, som definierar rutnätet för delplottarna. Som standard är båda 1, vilket ger en enda Axes.
subplots() returnerar en Figure och antingen ett Axes-objekt eller en array av dessa, beroende på layouten.
12345import matplotlib.pyplot as plt fig, axs = plt.subplots(2, 2) plt.show()
Ett 2 gånger 2 subplot-nät skapades.
Eftersom det finns flera subplots returnerar subplots en array av Axes-objekt, som vanligtvis lagras i en variabel som kallas axs (singular ax används för en plot).
I detta fall är axs en tvådimensionell array, så du behöver både rad- och kolumnindex för att komma åt en specifik subplot.
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()
Den första raden innehåller två linjediagram; den andra raden innehåller två spridningsdiagram.
Varje diagram måste ritas med metoden för det motsvarande Axes-objektet, inte plt.plot() eller plt.scatter().
Omvandling till 1D-array
Du kan platta ut den tvådimensionella Axes-arrayen med .ravel() för att förenkla indexeringen:
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()
Med en 2x2-array omvandlar axs.ravel() den till en endimensionell array med fyra element.
Dela en axel
Funktionen subplots() har även parametrarna sharex och sharey. Dessa styr om x- eller y-axlarna delas mellan delgrafer. Båda är som standard satta till 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()
Inställningen sharex=True delar x-axeln mellan alla delplottar.
Det går även att ange 'row' eller 'col' för att endast dela axlar inom rader eller kolumner.
Som vanligt är du välkommen att utforska mer i
subplots()-dokumentationen om du vill.
Swipe to start coding
- Använd rätt funktion för att skapa ett subplot-nät.
- Nätet ska ha 3 rader och 1 kolumn (ange de två första parametrarna).
- Ange det högra nyckelordet så att x-axeln delas mellan alla subplots.
- Spara resultatet av funktionen för att skapa subplots i variablerna
figochaxs(från vänster till höger). - Placera det första linjediagrammet för
data_linearpå den första raden (rad0) i subplot-nätet. - Placera det andra linjediagrammet för
data_squaredpå den andra raden (rad1) i subplot-nätet. - Placera det tredje linjediagrammet för
data_exppå den tredje raden (rad2) i subplot-nätet.
Lösning
Tack för dina kommentarer!
single