Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Delplottar | Anpassning av Diagram
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Ultimat Visualisering med Python

bookDelplottar

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.

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

Ett 2 gånger 2 subplot-nät skapades.

Note
Notera

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.

1234567891011121314
import 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()
copy

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:

123456789
fig, 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()
copy

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.

123456789
fig, 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()
copy

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.

Note
Fördjupa dig

Som vanligt är du välkommen att utforska mer i subplots()-dokumentationen om du vill.

Uppgift

Swipe to start coding

  1. Använd rätt funktion för att skapa ett subplot-nät.
  2. Nätet ska ha 3 rader och 1 kolumn (ange de två första parametrarna).
  3. Ange det högra nyckelordet så att x-axeln delas mellan alla subplots.
  4. Spara resultatet av funktionen för att skapa subplots i variablerna fig och axs (från vänster till höger).
  5. Placera det första linjediagrammet för data_linear på den första raden (rad 0) i subplot-nätet.
  6. Placera det andra linjediagrammet för data_squared på den andra raden (rad 1) i subplot-nätet.
  7. Placera det tredje linjediagrammet för data_exp på den tredje raden (rad 2) i subplot-nätet.

Lösning

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 6
single

single

Fråga AI

expand

Fråga AI

ChatGPT

Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal

close

bookDelplottar

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.

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

Ett 2 gånger 2 subplot-nät skapades.

Note
Notera

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.

1234567891011121314
import 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()
copy

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:

123456789
fig, 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()
copy

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.

123456789
fig, 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()
copy

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.

Note
Fördjupa dig

Som vanligt är du välkommen att utforska mer i subplots()-dokumentationen om du vill.

Uppgift

Swipe to start coding

  1. Använd rätt funktion för att skapa ett subplot-nät.
  2. Nätet ska ha 3 rader och 1 kolumn (ange de två första parametrarna).
  3. Ange det högra nyckelordet så att x-axeln delas mellan alla subplots.
  4. Spara resultatet av funktionen för att skapa subplots i variablerna fig och axs (från vänster till höger).
  5. Placera det första linjediagrammet för data_linear på den första raden (rad 0) i subplot-nätet.
  6. Placera det andra linjediagrammet för data_squared på den andra raden (rad 1) i subplot-nätet.
  7. Placera det tredje linjediagrammet för data_exp på den tredje raden (rad 2) i subplot-nätet.

Lösning

Switch to desktopByt till skrivbordet för praktisk övningFortsätt där du är med ett av alternativen nedan
Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 6
single

single

some-alt