Skrive matematikk med LaTeX


LaTeX er et språk vi kan bruke til å skrive inn matematiske uttrykk og formler på datamaskiner. Dette gjør det mulig å legge inn brøker, potenser, kvadratrøtter og mye mer. Jeg bruker det blant annet til å skrive inn uttrykk på denne siden.

Jeg har laget en liste med eksempler på hvordan vi kan skrive vanlige formler fra videregående skole med LaTeX. Denne gangen skal jeg hovedsakelig se på formler for Matematikk 1P og Matematikk 2P.

Dette er del 3 i en serie med bloggposter om LaTeX

Innhold

  • Innhold
  • Mattemodus
  • Symboler og kommandoer
  • Formler for areal og omkrets
  • Volum og overflate
  • Brøkregning
  • Pythagoras’ setning
  • Kvadratrøtter
  • Potenser
  • Standardform
  • Andregradslikning
  • Prisindeks, kroneverdi og reallønn
  • Prosentregning
  • Rett linje
  • Funksjoner
  • Sannsynlighetsregning
  • Statistikk
  • Intervaller og mengder
  • Geometriske symboler
  • Andre symboler
  • Måleenheter
  • Mattemodus

    WordPress

    I nyere versjoner av WordPress (6.8 +) kan vi legge inn LaTex-uttrykk som egne blokker eller som en del av et avsnitt.

    Uttrykk som egen blokk.

    Vi velger blokktypen math. Dette gir oss en boks for å skrive inn uttrykket.

    Uttrykk i teksten

    Inne i et avsnitt kan vi velge math fra formateringsmenyen for å sette inn et uttrykk i teksten. Dette gir oss også en inntastingsboks.

    Jupyter og Matplotlib

    For Jupyter er det hele enda lettere. All tekst som starter med $(«dollartegn») og slutter med $ blir tolket som LaTeX, $...$ . Dersom vi vil sette inn uttrykket på en egen linje starter vi og slutter vi med doble dollartegn, $$...$$.

    For Matplotlib bruker vi bare enkle dollartegn, $...$.

    Symboler og kommandoer

    Vi kan legge inn variabler som $a$, $b$, $x$ og $y$ og symboler som $=$, $+$ og $–$ ved å skrive dem inn.

    Vi har allerede sett et eksempel:

    y = ax + b

    blir til

    $$y = ax + b$$

    Variablene blir skrevet ut som matematiske symboler og ikke som bokstaver i en tekst!

    For tegn som ikke er på tastaturet må vi sette inn en kommandoer i stedet for. Disse starter med \. For eksempel skriver vi gangetegn, $\cdot$, som \cdot.

    2 \cdot 2

    blir til

    $$2 \cdot 2$$

    cdot er en forkortelse for centered dot. De fleste kommandoene vi bruker er engelske ord eller forkortelser for engelske ord og uttrykk.

    Kommandoer setter bare ikke inn symboler. Vi skal senere se på kommandoer som endrer utseendet på et eller flere etterfølgende symboler. Pass på: kommandoer skiller mellom stor og liten bokstav.

    Tilgjengelige kommandoer og symboler

    Jeg skal gå gjennom en liten del av LaTeX-kommandoene og symbolene som er tilgjengelige. De fleste vi bruker ligger i standardinstallasjonen eller i ekstrapakkene amsmath eller amssymb. Disse kommandoene og symbolene er tilgjengelige i de fleste formeleditorer.

    Det finnes flere mer eller mindre komplette kommandooversikter på engelsk:

    • Jim Hefferon, Saint Michael’s College, VT USA: LATEX Math for Undergrads (mer forklarende)
    • Ukjent: LATEX Mathematical Symbols (mer utfyllende)
    • Scott Pakin: The Comprehensive LaTeX Symbol List (mest utfyllende. Inneholder alle symboler i alle programpakker, men mange av kommandoene er ikke tilgjengelige i enkle editorer)

    Formler for areal og omkrets

    Pythonkode for figurene i denne delen.

    Rektangel

    Areal

    $$A = g \cdot h$$ A = g \cdot h navnkodesymbolgangetegn\cdot$\cdot$er lik=$=$

    Omkrets

    $$o = 2 \cdot (g + h) $$ o = 2 \cdot (g + h) navnkodesymbolpluss+$+$

    Trekant

    $$A = \frac{g \cdot h}{2}$$ A = \frac{g \cdot h}{2}

    Når vi regner ut arealet til en trekant må vi dele på 2. Vi viser divisjon i formler som en brøk. Vi legger inn brøker med koden \frac{}{} hvor uttrykkene for teller og nevner ligger inni de to krøllparentesene. \frac kommer av det engelske ordet for brøk, fraction.

    navnkodesymbolbrøk\frac{a}{b}$\frac{a}{b}$

    {} grupperer symboler. Hvis vi bare har et symbol trenger vi egentlig ikke å ha med krøllparenteser, men kan skrive \frac a b. Jeg synes det blir mer oversiktlig med å alltid bruke krøllparenteser for teller og nevner. \frac er en av mange kommandoer som endrer utseendet på et eller flere etterfølgende symboler eller grupper av symboler.

    Parallellogram

    $$A = g \cdot h$$ A = g \cdot h

    Trapes

    $$A = \frac{(a + b) \cdot h}{2}$$ A = \frac{(a + b) \cdot h}{2}

    Sirkel

    Areal

    $$A = \pi \cdot r^2$$ A = \pi \cdot r^2

    Vi setter inn symbolet for $\pi$ ved å skrive \pi.

    Vi setter inn eksponenter med ^-tegnet. Avhengig av hvilket operativsystem eller tastatur du bruker finner vi det på litt forskjellige steder på tastaturet. Hvis du er i tvil kan du alltids bruke tegnkart eller skjermtastatur.

    navnkodesymbolpi\pi$\pi$potens
    eksponent
    superscripta^b$a^b$

    Omkrets

    $$o = 2 \pi r$$ o = 2 \pi r

    Sirkelsektor

    Areal

    $$A = \pi r^2 \frac{n \degree}{360\degree}$$ A = \pi r^2 \frac{n \degree}{360\degree}

    Vi setter inn gradtegnet, $\degree$, med \degree.

    navnkodesymbolgrader\degree$\degree$

    Buelengde

    $$b = 2 \pi r \frac{n \degree}{360\degree}$$ b = 2 \pi r \frac{n \degree}{360\degree}

    Volum og overflate

    Pythonkode for romfigurene i denne delen.

    Pythonkode for de utbrettede rom figurene i denne delen.

    Dette avsnittet introduserer ingen nye symboler, men jeg har tatt det med likevel for å ha dekket alle formlene i pensum.

    Terning

    Volum

    $$V = s^3$$ V = s^3

    Overflate

    $$O = 6 \cdot s^2$$ O = 6 \cdot s^2

    Prisme

    $$V = G \cdot h$$ V = G \cdot h

    Rett prisme

    Volum

    $$V = l \cdot b \cdot h$$ V = l \cdot b \cdot h

    Overflate

    $$O = 2 l b + 2 l h + 2 b h$$ O = 2 l b + 2 l h + 2 b h

    Pyramide

    Volum

    $$V = \frac{G \cdot h}{3}$$ V = \frac{G \cdot h}{3}

    Areal

    Tar ikke med formelen, men her er tegninger for å utlede arealet.

    Syllinder

    Volum

    $$V = \pi r^2 h$$ V = \pi r^2 h

    Overflate

    $$O = 2 \pi r^2 + 2\pi r h$$ O = 2 \pi r^2 + 2\pi r h

    Kjegle

    Volum

    $$V =\frac{\pi r^2 h}{3}$$ V =\frac{\pi r^2 h}{3}

    Overflate

    $$O = \pi r s + \pi r^2$$ O = \pi r s + \pi r^2

    Kule

    Volum

    $$V = \frac{4 \pi r^3}{3}$$ V = \frac{4 \pi r^3}{3}

    Overflate

    $$O = 4 \pi r^2$$ O = 4 \pi r^2

    Brøkregning

    Erfaringsmessig er det lett å rote til rekkefølgen på krøllparentesene, {}, når vi skriver inn brøker.

    Utvide

    $$\frac{a}{b} = \frac{a \cdot c}{b \cdot c} $$ \frac{a}{b} = \frac{a \cdot c}{b \cdot c}

    Forkorte

    $$\frac{a}{b} = \frac{a : c}{b : c} $$ \frac{a}{b} = \frac{a : c}{b : c}

    Multiplikasjon

    $$\frac{a}{b} \cdot \frac{c}{d}= \frac{a \cdot c}{b \cdot d} $$ \frac{a}{b} \cdot \frac{c}{d}= \frac{a \cdot c}{b \cdot d} $$a \cdot \frac{c}{d}= \frac{a \cdot c}{b} $$ a \cdot \frac{c}{d}= \frac{a \cdot c}{b}

    Divisjon

    $$\frac{a}{b} : \frac{c}{d}= \frac{a}{b} \cdot \frac{d}{c}= \frac{a \cdot d}{b \cdot c} $$ \frac{a}{b} : \frac{c}{d}= \frac{a}{b} \cdot \frac{d}{c}= \frac{a \cdot d}{b \cdot c} $$a : \frac{b}{c}= a \cdot \frac{c}{b}= \frac{a \cdot b}{b} $$ a : \frac{b}{c}= a \cdot \frac{c}{b}= \frac{a \cdot b}{b} navnkodesymboldivisjon:$:$

    Sum og differanse

    Fellesnevner

    $$\frac{a}{b} + \frac{c}{b} = \frac{a+c}{d}$$ \frac{a}{b} + \frac{c}{b} = \frac{a+c}{d}

    Ulik nevner

    $$\frac{a}{b} + \frac{c}{d} = \frac{a \cdot d}{b \cdot d} + \frac{c \cdot b}{d \cdot b} = \frac{ad + cb}{bd}$$ \frac{a}{b} + \frac{c}{d} = \frac{a \cdot d}{b \cdot d} + \frac{c \cdot b}{d \cdot b} = \frac{ad + cb}{bd}

    Pythagoras’ setning

    $$a^2 + b^2 = c^2$$ a^2 + b^2 = c^2

    Kvadratrøtter

    $$\sqrt{ab} =\sqrt{a} \cdot \sqrt{b}$$ \sqrt{ab} =\sqrt{a} \cdot \sqrt{b} navnkodesymbolkvadratrot\sqrt{a}$\sqrt{a}$ $$\sqrt{\frac{a}{b}} = \frac{\sqrt{a}}{\sqrt{b}}$$ \sqrt{\frac{a}{b}} = \frac{\sqrt{a}}{\sqrt{b}} $$\sqrt[n]{ab} = \sqrt[n]{a} \cdot \sqrt[n]{b}$$ \sqrt[n]{ab} = \sqrt[n]{a} \cdot \sqrt[n]{b} navnkodesymbolnte-rot\sqrt[n]{a}$\sqrt[n]{a}$

    Vi gir kommandoer ekstra argumenter med klammeparenteser [].

    $$\sqrt[n]{\frac{a}{b}} = \frac{\sqrt[n]{a}}{\sqrt[n]{b}}$$ \sqrt[n]{\frac{a}{b}} = \frac{\sqrt[n]{a}}{\sqrt[n]{b}}

    Potenser

    $$a^p \cdot a^q = a^{p + q}$$ a^p \cdot a^q = a^{p + q}

    Vi bruker krøllparenteser {} til å gruppere uttrykk. I dette tilfellet er det nødvendig å skrive {p + q} for at hele uttrykket skal komme inn i eksponenten.

    navnkodesymbolgruppe{} $$\frac{a^p}{a^q} = a^{p – q}$$ \frac{a^p}{a^q} = a^{p - q} $$(a^p)^q = a^{p\cdot q}$$ (a^p)^q = a^{p\cdot q}

    Vi ser at det går an til å stable eksponenter!

    $$\left(\frac{a}{b} \right)^p = \frac{a^p}{b^p}$$ \left(\frac{a}{b} \right)^p = \frac{a^p}{b^p}

    Vi kan få parentesene til å automatisk justere størrelsen slik at de er like store som uttrykket de omslutter med å starte med \left( og slutte med \right).

    navnkodesymbolparenteser med automatisk størrelse\left( a \right)$\left( a \right)$ $$(a\cdot b)^p = a^p \cdot b^p$$ (a\cdot b)^p = a^p \cdot b^p $$a^{-p} = \frac{1}{a^p}$$ a^{-p} = \frac{1}{a^p} $$a^\frac{p}{q} = \sqrt[q]{a^p}$$ a^\frac{p}{q} = \sqrt[q]{a^p}

    Standardform

    $$a = \pm k \cdot 10^n$$ a = \pm k \cdot 10^n

    Hvor $k$ er et tall større enn eller lik 1 og mindre enn 10:

    $$1 \leq k < 10$$ 1 \leq k < 10

    og $n$ er et heltall:

    $$n \in \mathbb{Z}$$ n \in \Z

    Vi kan også skrive mengden $Z$ som

    $$n \in \{\ldots, -2, -1, 0, 1, 2, \ldots\}$$ n \in \{\ldots, -2, -1, 0, 1, 2, \ldots\} navnkodesymbolpluss/minus\pm$\pm$mindre enn<$<$mindre enn eller lik\leq$\leq$i mengde\in$\in$mengden av heltall\Z
    \mathbb{Z}$\Z$
    $\mathbb{Z}$mengde med diskrete elementer\{\}$\{\}$

    Andregradslikning

    Andregradslikning

    $$ax^2 + bx + c = 0$$ ax^2 + bx + c = 0 $$x = \frac{-b \pm \sqrt{b^2 – 4ac}}{2a}$$ x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}

    Faktorisering av andregradsuttrykk

    $$ax^2 + bx + c = a(x – x_1)(x – x_2)$$ ax^2 + bx + c = a(x - x_1)(x - x_2)

    Hvor $x=x_1$ og $x=x_2$ er løsningene av andregradslikningen.

    navnkodesymbolsubskriptx_i
    x_{i, j}$x_i$
    $x_{i, j}$

    Hvis vi skal ha mer enn et symbol i subskriptet må vi gruppere symbolene med klammeparentes {}.

    Prisindeks, kroneverdi og reallønn

    Prisindeks

    $$\frac{\text{pris 1}}{\text{pris 2}} = \frac{\text{indeks 1}}{\text{indeks 2}}$$ \frac{\text{pris 1}}{\text{pris 2}} = \frac{\text{indeks 1}}{\text{indeks 2}}

    Kroneverdi

    $$\text{kroneverdi} = \frac{100}{\text{konsumprisindeks}}$$ \text{kroneverdi} = \frac{100}{\text{konsumprisindeks}}

    Reallønn

    $$\text{reallønn} = \text{lønn} \cdot \text{kroneverdi} = \text{lønn}\cdot\frac{100}{\text{konsumprisindeks}}$$ \text{reallønn} = \text{lønn} \cdot \text{kroneverdi} = \text{lønn}\cdot\frac{100}{\text{konsumprisindeks}}

    Prosentregning

    Prosent og promille

    $$\frac{1}{100} = 1\%$$ \frac{1}{100} = 1\%

    Siden LaTeX bruker %-tegnet til kommentarer må vi skrive inn \% for å vise dette tegnet.

    $$\frac{1}{1000} = 1\permil$$ \frac{1}{1000} = 1\permil navnkodesymbolprosent\%$\%$promille\permil$\permil$

    Vekstfaktor

    $$k = \left(1 + \frac{p}{100}\right)$$

    Hvor $k$ er vekstfaktoren og $p$ er prosenttallet.

    Prosentvis vekst over flere perioder

    $$B_n = B_0 k^n$$ B_n = B_0 k^n

    Hvor $B_0$ er startverdien og $B_n$ er verdien etter $n$ perioder.

    Annualisert vekstfaktor

    $$k = \sqrt[n]{\frac{B_n}{B_0}}$$ k = \sqrt[n]{\frac{B_n}{B_0}}

    Rett linje

    Pythonkode for figurene i dette avsnittet.

    Likning

    Likning for rett linje med stigningstall $a$ og konstantledd $b$.

    $$y = ax+b$$ y = ax+b

    Stigningstall

    Stigningstall for en rett linje gjennom $(x_1, y_1)$ og $(x_2, y_2)$.

    $$a = \frac{\Delta y}{\Delta x} = \frac{y_2 – y_1}{x_2 – x_1}$$ a = \frac{\Delta y}{\Delta x} = \frac{y_2 - y_1}{x_2 - x_1}

    Delta-tegnet, $\Delta$, er den store greske bokstaven Delta.

    navnkodesymbolStor delta\Delta$\Delta$

    Ettpunktsformelen

    Likning for en rett linje gjennom $(x_1, y_1)$ med stigningstall $a$.

    $$y – y_1 = a (x – x_1)$$ y - y_1 = a (x - x_1)

    Funksjoner

    Andregradsfunksjon

    $$f(x) = ax^2 + bx + c, a \neq 0 $$ f(x) = ax^2 + bx + c, a \neq 0 navnkodesymbolikke lik\neq

    Polynomfunksjon

    $$f(x) = k_n x^n + \ldots + k_2 x^2 + k_1 x + k_0$$ f(x) = k_n x^n + \ldots + k_2 x^2 + k_1 x + k_0

    Potensfunksjon

    $$f(x) = ax^b$$ f(x) = ax^b

    Eksponentialfunksjon

    $$f(x) = bk^x$$ f(x) = bk^x

    Sannsynlighetsregning

    Uniform sannsynlighetsmodell

    Sannsynligheten for en hending $A$ i en uniform sannsynlighetsmodell

    $$P(A) = \frac{\text{antall gunstige utfall for} A}{\text{antall mulige utfall}}$$ P(A) = \frac{\text{antall gunstige utfall for} A}{\text{antall mulige utfall}}

    Komplementære hendelser

    $\bar{A}$ er den hendelsen at $A$ ikke intreffer.

    $$P(\bar{A}) = 1 – P(A)$$ P(\bar{A}) = 1 - P(A) navnkodesymbolkomplement\bar{A}$\bar{A}$

    Disjunkte hendelser

    $A$ og $B$ har ingen felles utfall.

    $$A \cap B = \emptyset$$ A \cap B = \emptyset navnkodesymbolsnitt\cap$\cap$

    Addisjonssetningen

    $$P(A \cup B) = P(A) + P(B) – P(A \cap B)$$ P(A \cup B) = P(A) + P(B) - P(A \cap B) navnkodesymbolunion\cup$\cup$

    Produktsetningen

    $P(B | A)$ betyr den betingede sannsynligheten for $B$ gitt $A$.

    $$P(A \cap B) = P(A) \cdot P(B|A)$$ P(A \cap B) = P(A) \cdot P(B|A)

    Produktsetningen for uavhengige hendelser

    $$P(A \cap B) = P(A) \cdot P(B)$$ P(A \cap B) = P(A) \cdot P(B) navnkodesymbolbetinget|$|$

    Statistikk

    Gjennomsnitt

    $$\bar{x} = \frac{1}{n}\sum_{i=1}^n x_i$$ \bar{x} = \frac{1}{n}\sum_{i=1}^n x_i

    Hvor $\bar{x}$ er gjennomsnittet, $n$ er antall observasjoner og $x_i$ er den $i$-te observasjonen. $\sum$-tegnet ( $\sum$-operatoren) viser at vi skal summere alle $x$-verdiene fra $1$ til $n$.

    Vi ser at vi bruker den samme kommandoen og symbolet for gjennomsnitt som for komplement \bar.

    navnkodesymbolgjennomsnitt\bar{x}$\bar{x}$summetegn\sum$\sum$summetegn med grenser\sum_{i = 1}^n$\sum_{i=1}^n$

    Vi ser at for frittstående matteblokker blir summetegnet stort og summeringsgrensene kommer over og under tegnet. For matematikk inne i teksten blir symbolet mindre og grensene kommer til høyre for teksten.

    Variasjonsbredde

    $$\mathrm{variasjonsbredde} = x_\mathrm{max}-x_\mathrm{min}$$ \mathrm{variasjonsbredde} = x_\mathrm{max}-x_\mathrm{min}

    Varians

    $$\mathrm{Var}[X] = \frac{1}{n}\sum_{i=1}^n \left(x_i – \bar{x} \right)^2 = \sigma^2$$ \mathrm{Var}[X] = \frac{1}{n}\sum_{i=1}^n \left(x_i - \bar{x} \right)^2 = \sigma^2 navnkodesymbolvarians\sigma^2$\sigma^2$standardavvik\sigma$\sigma$

    Intervaller og mengder

    navnkodesymbolfra og med[$[$til og med]$]$fra men ikke med\langle$\langle$til men ikke med\rangle$\rangle$

    Geometriske symboler

    Geometriske symboler som blant annet er nyttige for å diskutere formlikhet.

    navnkodesymbol(spiss) vinkel\angle$\angle$grader\degree$\degree$vinkelrett
    ortogonal\perp$\perp$paralell\parallel$\parallel$ikke paralell\nparallel$\nparallel$trekant\triangle$\triangle$formlikhet\sim$\sim$

    Andre symboler

    Det er litt flere symboler vi kan trenge på 1P/2P-nivå.

    navnkodesymbolomtrent lik\approx$\approx$større enn>$>$større enn eller lik\geq$\geq$implikasjon\Rightarrow$\Rightarrow$ekvivalens\Leftrightarrow$\Leftrightarrow$uendelig\infty$\infty$går mot\rightarrow$\rightarrow$naturlige tall\N
    \mathbb{N}$\N$
    $\mathbb{N}$reelle tall\R
    \mathbb{R}$\R$
    $\mathbb{R}$mikro\mu$\mu$

    Måleenheter

    Dersom vi ønsker å skrive enheter i uttrykkene våre må vi bruke \mathrm{} for å få dem til å se riktige ut.

    navnkodesymbolkilogram\mathrm{kg}$\mathrm{kg}$meter\mathrm{m}$\mathrm{m}$kvadratmeter\mathrm{m}^2$\mathrm{m}^2$kubikkmeter\mathrm{m}^3$\mathrm{m}^3$literl$l$sekunder\mathrm{s}$\mathrm{s}$meter per sekund\mathrm{m/s}$\mathrm{m/s}$kilometer i timen\mathrm{km/h}$\mathrm{km/h}$kelvin\mathrm{K}$\mathrm{K}$celsiusgrader\degree\mathrm{C}$\degree\mathrm{C}$watt\mathrm{W}$\mathrm{W}$

    #1P #2P #andregradslikning #areal #brøk #formelsamling #funksjoner #Jupyter #kroneverdi #kvadratrot #latex #matplotlib #omkrets #overflate #potenser #prisindeks #Prosentregning #pythagoras #reallønn #rettLinje #Sannsynlighet #standardform #statistikk #volum #wordpress

    Fine, rette linjer med Matplotlib


    Jeg holder på å skrive om likningen til en rett linje. I den forbindelse har jeg laget noen enkle figurer i Matplotlib som illustrerer likningen, stigningstallet og konstantleddet. Jeg viser blant annet hvordan vi kan få navn og piler på aksene.

    Disse tegningene ble brukt til å illustrere Skrive matematikk med LaTeX

    Innhold

    • Oppsett
    • Piler og navn på aksene
    • Tegne rett linje
    • Ettpunktsformel
    • Likning
    • Stigningstall

    Oppsett

    Funksjoner og biblioteker

    Laster inn biblioteker og funksjoner jeg har tenkt å bruke.

    import matplotlib.pyplot as plt import numpy as np from itertools import cycle

    Matplotlib-instillinger

    Endrer standardinstillingene til Matplotlib. Gjør grafvinduet bredere og teksten større.

    plt.rcParams['figure.figsize'] = 10, 5 plt.rcParams['font.size'] = 20

    figure.figsize er bredde, høyde i tommer. Siden oppløsningen er 72 dpi (punkter per tommer) blir bredden 720 piksler. Denne størrelsen passer bra med bredden på WordPress-temaet mitt.

    Fargesykel

    Siden jeg skal tegne flere figurer vil jeg at hver figur skal få sin egen farge. Jeg lager meg et cycle-objekt. Hver gang jeg kaller next-funksjonen med denne som argument vil jeg få en ny farge. Når listen er tom begynner den på starten igjen.

    farger = cycle(['tab:blue', 'tab:orange', 'tab:green', 'tab:red', 'tab:purple', 'tab:brown', 'tab:pink', 'tab:olive', 'tab:cyan'])

    Tegneparametre

    Setter parametre som skal være felles for alle grafene. Dette er stigningstall, konstantledd, $x$-verdiene vi skal tegne linjen fra og til og til slutt hvor vi vil markere $x_1$

    a0, b0, xstart0, xslutt0, x1_0 = 0.5, 0.5, -.5, 2.5, .5

    Piler og navn på aksene

    Lager en funksjon som setter opp aksene med piler og navn i det eksisterende tegnevinduet.

    def tegnevindu(): """ Funksjon som setter opp et tegnevindu med piler og navn på aksene. Returns ------- ax : matplotlib.axes.Axes Det ferdige akseobjektet """ # Henter ut det eksisterende akseobjektet. ax = plt.gca() # Flytter venstre- og nedreaksen til henholdsvis x = 0 og y = 0. ax.spines["left"].set_position("zero") ax.spines["bottom"].set_position("zero") # Skjuler høyre- og toppaksen ax.spines["top"].set_visible(False) ax.spines["right"].set_visible(False) # Tegner piler som svarte trekanter: ">k" på slutten av aksene. # Koordinatene sammen med transform-argumentet gjør at trekantene alltid # kommer på enden av aksene. ax.plot(1, 0, ">k", transform=ax.get_yaxis_transform(), clip_on=False) ax.plot(0, 1, "^k", transform=ax.get_xaxis_transform(), clip_on=False) # Gir navn på aksene og flytter aksenavnene til enden av aksen. ax.set_xlabel("x", loc="right") ax.set_ylabel("y", loc="top") # Fjerner aksemerkene ax.set_xticks([]) ax.set_yticks([]) # Returnerer akseobjektet. return ax ax = tegnevindu() plt.show()

    gca henter ut det eksisterende akseobjektet som pyplot bruker eller oppretter et nytt akseobjekt i pyplot dersom det ikke finnes.

    Dette gjør at

    ax = plt.gca() ax.plot([1, 2, 3], [1, 3, 2])

    Tilsvarer

    plt.plot([1, 2, 3], [1, 3, 2])

    Tegne-metodene til akseobjektet er de samme eller nesten de samme som tegne-funksjonene til pyplot. Ofte er forskjellen at metodene starter med set_ eller get_. For eksempel bruker pyplot xlabel-funksjonen til å sette navn på x-aksen, mens akseobjektet bruker set_xlabel-metoden til å gjøre det samme.

    Tegne rett linje

    Lager en funksjon som tegner en rett linje.

    def tegn_linje(a=a0, b=b0, xstart=xstart0, xslutt=xslutt0): # Henter ut en ny farge farge = next(farger) # Setter opp tegnevinduet ax = tegnevindu() # Lager en funksjon for å finne y-verdiene til den rette linjen. def f(x): return a*x + b # Lager en liste med x-verdier xverdier = np.linspace(xstart, xslutt) # Tegner den rette linjen gitt ved y = ax + b i akseobjektet. ax.plot(xverdier, f(xverdier), color=farge) # Gir x- og y-aksen de samme proporsjonene ax.axis('scaled') # Returnerer akseobjektet sammen med funksjonen vi laget for y. # Dette gjør at vi ikke trenger å lage en ny funksjon når vi skal # jobbe videre med grafen. return ax, f tegn_linje() plt.show()

    Ettpunktsformel

    Lager en funksjon som markerer punktet $(x1, y1)$ på den rette linjen som et punkt med tekst.

    def tegn_ettpunktsformel(a = a0, b=b0, xstart = xstart0, xslutt=xslutt0, x1=x1_0): # Tegner den rette linjen ax, f = tegn_linje(a, b, xstart, xslutt) # Regner ut den tilsvarende y-verdien y1 = f(x1) # Markerer punktet (x1, y2) ax.scatter(x1, y1, color="black") ax.text(x1, y1, r"$(x_1, y_1)$", ha="right", va="bottom") # Returnerer akseobjektet return ax ax = tegn_ettpunktsformel() plt.show()

    Likning

    Lager en funksjon som markerer konstantleddet, $b$, på $y$-aksen og stigningstallet, $a$, som en trekant mellom $x_1$ og $x_1 + 1$ med høyde $a$.

    def tegn_likning(a=a0, b=b0, xstart=xstart0, xslutt=xslutt0, x1=x1_0): # Tegner den rette linjen. ax, f = tegn_linje(a, b, xstart, xslutt) # Regner ut x2, y1, og y2 x2 = x1 + 1 y1, y2 = f(x1), f(x2) # Tegner trekanten. ax.plot([x1, x2, x2], [y1, y1, y2], color="black") # Markerer den rette vinkelen i (x2, y1). ax.plot([x2, x2 - 0.1, x2 - 0.1], [y1 + 0.1, y1 + 0.1, y1], color="black") # Setter tall på grunnlinjen og gir navn på høyden. ax.text((x1 + x2)/2, y1, 1, va="top") ax.text(x2, (y1 + y2)/2, "a", ha="left") # Markerer lengden b og setter navn ax.plot([0, 0], [0, b], color="black") ax.text(0, b/2, "b", va="center", ha="right") # Returnerer akseobjektet return ax ax = tegn_likning() plt.show()

    Stigningstall

    Lager en funksjon som markerer $(x_1, y_1)$ og $(x_2, y_2)$ og viser $\Delta x$ og $\Delta y$ som katetene i en rettvinklet trekant.

    def tegn_stigningstall(a=a0, b=b0, xstart=xstart0, xslutt=xslutt0, x1=x1_0): # Tegner den rette linjen. ax, f = tegn_linje(a, b, xstart, xslutt) # Regner ut x2, y1, og y2 x2 = x1 + 1 y1, y2 = f(x1), f(x2) # Markerer (x1, y1) og (x2, y2) ax.scatter([x1, x2], [y1, y2], color="black") # Tegner trekanten. ax.plot([x1, x2, x2], [y1, y1, y2], color="black") # Markerer den rette vinkelen i (x2, y1). ax.plot([x2, x2 - 0.1, x2 - 0.1], [y1 + 0.1, y1 + 0.1, y1], color="black") # Markerer (x1, y1) og (x2, y2) ax.text(x1, y1, r"$(x_1, y_1)$", ha="right", va="bottom") ax.text(x2, y2, r"$(x_2, y_2)$", ha="right", va="bottom") # Markerer katetene i trekanten ax.text((x1 + x2)/2, y1, r"$\Delta x = x_2 - x_1$", va="top", ha="center") ax.text(x2, (y1 + y2)/2, r"$\Delta y = y_2 - y_1$", ha="left") # Returnerer akseobjektet return ax ax = tegn_stigningstall() plt.show() #akse #aksepil #aksetittel #Axes #cycle #ettpunktsformel #gca #itertools #konstantledd #matplotlib #numpy #plot #rettLinje #stigningstall #trekant