Programmeringskurs (alle) *: 4.1 Definere egne funksjoner
Slik kan du tegne diagrammer med Python
Med metodene plot og show fra pylab kan vi tegne grafer. plot lager grafen, mens show sørger for at den blir vist på skjermen.
Når vi skal tegne grafer, trenger vi to lister, én med verdiene langs #x#-aksen og én med verdiene langs #y#-aksen.
Har vi verdiene i en tabell, kan vi gjøre det slik:
#\texttt{from pylab import plot, show}#
#\texttt{x = [0, 2, 4, 6, 8]}#
#\texttt{y = [8, 0, 4, -3, -12]}#
#\texttt{plot(x, y)}#
#\texttt{show()}#
Resultatet blir
Oftest vil vi bruke linspace eller array til å lage listene vi trenger for #x#- og #y#-verdiene.
Tegn grafen til
#y=x^2-x-6#
for #x#-verdier mellom #–5# og #5#.
Vi bruker linspace til å lage verditabell. Så lager vi grafen med plot og viser den på skjermen med show.
Vi ser at grafen blir litt hakkete. Det skyldes at vi bare bruker #11# verdier for #x# og #y#. Øker vi antallet til #100#, ser grafen glatt og fin ut. Forsøk selv å endre til
# \texttt{x = linspace(-5, 5, }\color{red}{\texttt{100}}\texttt{)}#
og kjør koden. Da vil resultatet bli slik:
Vi kan pynte og tilpasse grafen vi får tegnet, ved å importere og bruke metodene i tabellen nedenfor.
plot(x,y) |
Brukes for å tegne grafen, der x og y er lister med henholdsvis #x#- og #y#-verdier. |
show() |
Brukes for å vise grafen. Som regel siste linje i koden. |
title("Tekst") |
Legger til tittel på grafen. |
xlabel("Tekst") |
Setter navn på #x#-aksen. |
ylabel("Tekst") |
Setter navn på #y#-aksen. |
grid() |
Legger til rutenett på figuren. |
axhline() |
Lager en horisontal linje (for eksempel som #x#-akse). |
axvline() |
Lager en vertikal linje (for eksempel som #y#-akse). |
Inne i parentesene for metodene plot, grid, axhline og axvline beskrevet ovenfor kan vi skrive koder for å endre blant annet farge og linjetype. Skriver vi for eksempel grid(color="grey", linestyle="--"), får vi et grått rutenett med stiplet linje.
Nedenfor ser du et eksempel hvor vi har brukt alle disse metodene og dessuten tegner to grafer i samme koordinatsystem. Legg merke til at vi har skrevet from pylab import *, slik at alt fra pylab er importert. Det gjør programmet litt tregt.
Nå kan du selv forsøke å endre i koden og utforske hvordan plottingen fungerer. Prøv deg frem og søk på internett for å finne flere muligheter. Det finnes mange!