single
Skapa 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 arbetsyta; nu undersöker vi den mer i detalj.
Rader och kolumner
De viktigaste argumenten är nrows och ncolumns, som definierar rutnätet för delgrafer. Som standard är båda 1, vilket ger en enda Axes.
subplots() returnerar ett Figure-objekt 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 kallad axs (singular ax används för en enskild 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().
Omvandla 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()
Genom att ange sharex=True delas x-axeln mellan alla delgrafer.
Du kan även 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