Programmeringskurs: 1.5 Funksjoner

Teori Grafer og diagrammer

I pylab-pakken finnes også verktøyene vi trenger for å tegne grafer og diagrammer i Python.

Vi bruker plot og show fra pylab til å 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, på samme måte som vi trenger en verditabell når vi tegner en funksjonsgraf for hånd.

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

Resultat

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#.

Løsning

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 #7# 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:

1_6_Graf3.png

Grafen blir glattere, jo flere funksjonsverdier vi bruker. Men samtidig krever det mye regnekapasitet av datamaskinen å regne ut alle verdiene. Vi må derfor finne en balanse mellom nok verdier til at det blir glatt og pent, men så få at datamaskinen har nok minne og prosessorkraft til å utføre beregningen innen rimelig tid.

Vi kan pynte og tilpasse grafen vi får tegnet, ved å importere og bruke funksjonene 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 i plot, grid, axhline og axvline 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 funksjonene 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!

Cappelen Damm Kontakt: cda-matematikk@cappelendamm.no | Hva er Student? | Personvernerklæring | Rettigheter