Lektion 4
På lektionen introduceras paketet matplotlib
som kan användas till att
rita ut diagram med Python.
Bra att läsa innan/under lektionen
Aktivera virtuell miljö
Till denna laboration behöver vi använda oss av bl.a. paketen matplotlib
som
tillhandahåller funktionalitet för att rita olika typer av diagram.
Du kan se exempel på några diagram som skapats med matplotlib
här.
Paketet finns installerat i en i en virtuell pythonmiljö skapad med
programmet virtualenv
. För att skalet ska förstå att du ska använda den
istället för den vanliga pythonmiljön som systemet tillhandahåller behöver
du aktivera den.
Nedanstående aktiverar den virtuella miljö som ska användas både på denna lektion och när du sedan jobbar med laboration 4.
$ source /courses/TDDE44/venv_lab4/bin/activate
En virtuell miljö är aktiv tills du stänger skalet/terminalfönstret eller
använder kommandot deactivate
.
På egen dator
Om du jobbar på egen dator behöver du installera paketet matplotlib
. För att
hålla isär paket som används i olika projekt kan du använda dig av en virtuell
miljö, men det är inte nödvändigt för kursens del.
Övning 1: Testa pyplot - spara diagram till bildfiler
Vi kommer att använda matplotlib.pyplot
för att rita diagram. Vi kommer dock
att skapa bildfiler istället för att visa diagrammen i Jupyter Notebook som är
vad de flesta tutorials på webben använder.
- Prova koden under rubriken Rita diagram på sidan om Matplotlib
- Läs även på sidan om skillnaden mellan spara diagram till fil och att skapa diagram i Jupyter
Här är diagrammet ni bör få:
Övning 2: Ett enkelt diagram
Med utgångspunkt i koden på sidan om Matplotlib, skriv en funktion som ritar ut punkterna för $f(x) = x^2$, för alla $x$ som är i det slutna intervallet $[-5,5]$.
För att ta fram y-värdena, skriv även funktionen get_x_squared(x_values)
som returnerar en lista med alla y-värden för $f(x) = x^2$ för alla heltal
i listan x_values
.
Här är diagrammet ni bör få:
Tips: Man kan skapa en lista med hjälp av range()
. Skapa listan [0, 1, 2, 3]
: list(range(4))
eller så kan man använda sig av s.k. list
comprehensions,
(ännu en
länk).
Övning 3: Flera linjer i samma diagram
Funktionen plt.figure()
skapar en ny figur. Så länge som vi inte anropar
plt.figure()
igen, så kommer alla anrop till t.ex. plt.plot()
ändra på den
nuvarande figuren.
Skriv en funktion som ritar ut linjen som består av punkterna $((0,1), (5,10), (10,17))$ och linjen som består av punkterna $((3,3), (6,6), (9,9))$ i samma figur. Funktionen ska spara figuren till en fil.
Här är diagrammet ni bör få:
Övning 4: Använda en pythonfil som en modul
Skapa en ny fil och importera filen som innehåller funktionen get_x_squared()
,
som modul.
Skriv sedan en funktion use_get_x_squared()
som ritar ut nedanstående två
grafer i samma diagram:
- $f(x)=x^2$ med intervallet $[-50, -20]$
- $f(x)=x^2$ med intervallet $[20, 50]$
Funktionen use_get_x_squared()
ska använda sig av den importerade funktionen
get_x_squared()
.
Här är diagrammet ni bör få:
Sidansvarig: Johan Falkenjack
Senast uppdaterad: 2021-02-24