> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/no/fagspesifikt/08-pgfplots-package.md).

# Pgfplots-pakken

## Innledning

Den `pgfplots` pakken, som er basert på [`TikZ`](/latex/no/figurer-og-tabeller/05-tikz-package.md), er et kraftig visualiseringsverktøy og ideelt for å lage vitenskapelig/teknisk grafikk. Grunntanken er at du oppgir inndataene/formelen, og `pgfplots` gjør resten.

### Dokumentets preambel

For å bruke `pgfplots` pakken i dokumentet ditt, legg til følgende linje i preamblen:

`\usepackage{pgfplots}`

Du kan også konfigurere oppførselen til `pgfplots` i dokumentets preambel. For eksempel, for å endre størrelsen på hver graf og sikre bakoverkompatibilitet (anbefalt), legg til neste linje:

`\pgfplotsset{width=10cm,compat=1.9}`

Dette endrer størrelsen på hver `pgfplot` figur til 10 centimeter, noe som er stort; du kan bruke andre enheter (pt, mm, in). *compat* parameteren er for at koden skal fungere med pakkeversjon 1.9 eller nyere.

### Kompileringstid (kort bakgrunn)

Da den opprinnelige TeX-motoren ble unnfanget/skrevet for mer enn 40 år siden, var den ikke laget for *direkte* produksjon av grafikk — disse skulle være filer laget av eksterne programmer (f.eks. MetaPost) og importert inn i det typesatte dokumentet. Fremkomsten av pdfTeX — som er tett basert på den opprinnelige TeX-programvaren — gjorde det mulig å lage grafikk *direkte* ved å bruke pdfTeXs nye innebygde TeX-språkkommandoer (kalt *primitivene*) som kan skrive ut PDF-operatorene/dataene som kreves for å produsere grafikk. Opprettelsen av pdfTeX førte til utviklingen av avanserte LaTeX-grafikkpakker, som for eksempel `TikZ`, `pgfplots` osv., som kan produsere grafikk kodet ved hjelp av LaTeX-kommandoer på høyt nivå.

Men i kulissene, og dypt inne i pdfTeX-motoren (og andre motorer), må disse LaTeX-grafikkkommandoene på høyt nivå behandles ved å "konvertere" dem tilbake til lave pdfTeX-motor-kommandoer (primitive) som faktisk genererer (skriver ut) PDF-operatorene som kreves for å produsere den resulterende figuren(e). Denne behandlingen av grafiske LaTeX-kommandoer — ekspansjon og utførelse av primitiver — kan ta en ikke ubetydelig mengde tid. Selv en eneste grafikkkommando på høyt nivå i LaTeX, sammen med de tilhørende dataene, kan kreve gjentatt utførelse av *mange* lave TeX-motor-kommandoer (primitive). Fra en sluttbrukers perspektiv kan dokumenter som inneholder flere `pgfplots` figurer, og/eller svært kompleks grafikk, ta betydelig tid å gjengi (kompilere).

### Reduksjon av kompileringstid

For å øke hastigheten på dokumentkompileringen kan du konfigurere `pgfplots` pakken til å eksportere figurene til separate PDF-filer og deretter importere dem i dokumentet: kompilér én gang, og gjenbruk deretter figurene. For å gjøre det, legg til koden vist nedenfor i preamblen:

```
\usepgfplotslibrary{external}
\tikzexternalize
```

Se [denne hjelpeartikkelen](/latex/no/sporsmal-og-svar/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md) for nærmere detaljer om hvordan du setter opp tikz-eksternalisering i Overleaf-prosjektet ditt.

## Grunnleggende eksempel (også med eksternalisering av figurene)

```latex
\documentclass{article}
\usepackage[margin=0.25in]{geometry}
\usepackage{pgfplots}
\pgfplotsset{width=10cm,compat=1.9}

% Vi vil eksternalisere figurene
\usepgfplotslibrary{external}
\tikzexternalize

\begin{document}

Første eksempel er 2D- og 3D-matematiske uttrykk plottet side om side.

%Her begynner 2D-plottet
\begin{tikzpicture}
\begin{axis}
\addplot[color=red]{exp(x)};
\end{axis}
\end{tikzpicture}
%Her slutter 2D-plottet
\hskip 5pt
%Her begynner 3D-plottet
\begin{tikzpicture}
\begin{axis}
\addplot3[
    surf,
]
{exp(-x^2-y^2)*x};
\end{axis}
\end{tikzpicture}
%Her slutter 3D-plottet

\end{document}
```

[Åpne dette `pgfplots` eksempel i Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+example+1\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.25in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%0A%25+We+will+externalize+the+figures%0A%5Cusepgfplotslibrary%7Bexternal%7D%0A%5Ctikzexternalize%0A%0A%5Cbegin%7Bdocument%7D%0A%0AFirst+example+is+2D+and+3D+math+expressions+plotted+side-by-side.%0A%0A%25Here+begins+the+2D+plot%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A%5Caddplot%5Bcolor%3Dred%5D%7Bexp%28x%29%7D%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%25Here+ends+the+2D+plot%0A%5Chskip+5pt%0A%25Here+begins+the+3D+plot%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A%5Caddplot3%5B%0A++++surf%2C%0A%5D%0A%7Bexp%28-x%5E2-y%5E2%29%2Ax%7D%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%25Here+ends+the+3D+plot%0A%0A%5Cend%7Bdocument%7D)

Det følgende bildet viser resultatet som koden ovenfor produserer:

![Plgplotsex1OLV2.png](/files/6ae220476a4c316364604a77647f3bdefde52526)

### Forklaring av koden

Siden `pgfplots` er basert på `tikz` plottet må være inne i en `tikzpicture` miljø. Deretter vil miljødeklarasjonen `\begin{axis}`, `\end{axis}` sette riktig skalering for plottet — se [Referanseguide](#reference-guide) for andre aksemiljøer.

For å legge til et faktisk plott brukes kommandoen `\addplot[color=red]{log(x)};` brukes. Inne i hakeparentesene, `[...]`, kan noen valg sendes inn; her setter vi `color` til plottets `rød`. Hakeparentesene er påkrevd; hvis ingen valg sendes inn, la det være et tomrom mellom dem. Inne i krøllparentesene setter du funksjonen som skal plottes. Det er viktig å huske at denne kommandoen må avsluttes med semikolon (;).

For å plassere et andre plott ved siden av det første, deklarer et nytt `tikzpicture` miljø. Ikke sett inn en ny linje, men et lite mellomrom; i dette tilfellet `hskip 10pt` vil sette inn et tomrom med bredde 10 pt.

Resten av syntaksen er den samme, bortsett fra `\addplot3 [surf,]{exp(-x^2-y^2)*x};`. Dette vil legge til et 3D-plott, og valget `surf` inne i hakeparentesene erklærer at det er et overflateplott. Funksjonen som skal plottes må plasseres inne i krøllparentesene. Igjen, ikke glem å sette semikolon (;) på slutten av kommandoen.

**Merk**: Det anbefales som god praksis å rykke inn koden — se det andre plottet i eksemplet ovenfor — og å legge til et komma (,) på slutten av hvert valg som sendes til `\addplot`. På denne måten blir koden mer lesbar og det er enklere å legge til flere valg ved behov.

## 2D-plott

`pgfplots`2D-plottefunksjonaliteten er omfattende — og du kan tilpasse plottene slik at de passer dine behov. Likevel gir standardvalgene vanligvis veldig gode resultater, så alt du trenger å gjøre er å mate inn dataene, og LaTeX gjør resten.

### Plotting av matematiske uttrykk

Her er et eksempel:

```latex
\begin{tikzpicture}
\begin{axis}[
    axis lines = left,
    xlabel = \(x\),
    ylabel = {\(f(x)\)},
]
%Under er den røde parabelen definert
\addplot [
    domain=-10:10,
    samples=100,
    color=red,
]
{x^2 - 2*x - 1};
\addlegendentry{\(x^2 - 2x - 1\)}
%Her er den blå parabelen definert
\addplot [
    domain=-10:10,
    samples=100,
    color=blue,
    ]
    {x^2 + 2*x + 1};
\addlegendentry{\(x^2 + 2x + 1\)}

\end{axis}
\end{tikzpicture}
```

[Åpne dette `pgfplots` eksempel i Overleaf.](https://www.overleaf.com/docs?engine=\&snip_name=pgfplots+example+2\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.25in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%5B%0A++++axis+lines+%3D+left%2C%0A++++xlabel+%3D+%5C%28x%5C%29%2C%0A++++ylabel+%3D+%7B%5C%28f%28x%29%5C%29%7D%2C%0A%5D%0A%25Below+the+red+parabola+is+defined%0A%5Caddplot+%5B%0A++++domain%3D-10%3A10%2C+%0A++++samples%3D100%2C+%0A++++color%3Dred%2C%0A%5D%0A%7Bx%5E2+-+2%2Ax+-+1%7D%3B%0A%5Caddlegendentry%7B%5C%28x%5E2+-+2x+-+1%5C%29%7D%0A%25Here+the+blue+parabola+is+defined%0A%5Caddplot+%5B%0A++++domain%3D-10%3A10%2C+%0A++++samples%3D100%2C+%0A++++color%3Dblue%2C%0A++++%5D%0A++++%7Bx%5E2+%2B+2%2Ax+%2B+1%7D%3B%0A%5Caddlegendentry%7B%5C%28x%5E2+%2B+2x+%2B+1%5C%29%7D%0A%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Resultatet av denne koden vises i bildet nedenfor — LaTeX-dokumentets preambel legges automatisk til når du åpner lenken:

![Plgplotsex2.png](/files/888bc28fa00db1c35cb9b2855ec7574875bdfe74)

#### Forklaring av koden

La oss analysere de nye kommandoene linje for linje:

**axis lines = left.**

Dette vil sette aksene bare på venstre og nedre side av plottet, i stedet for standardboksen. Flere tilpasningsvalg finnes i referansehåndboken.

**xlabel = (x) og ylabel = {(f(x))}.**

Selvforklarende parameternavn; disse lar deg sette en etikett på den horisontale og vertikale aksen. Legg merke til verdien til ylabel mellom krøllparentesene; disse parentesene forteller pgfplots hvordan teksten skal grupperes. xlabel kunne også hatt parenteser. Dette er nyttig for kompliserte etiketter som kan forvirre pgfplots.

**\addplot.**

Dette vil legge til et plott i aksen; generell bruk ble beskrevet i introduksjonen. Det er to nye parametere i dette eksemplet.

**domain=-10:10.**

Dette fastsetter verdiområdet til x.

**samples=100.**

Bestemmer antallet punkter i intervallet definert av domain. Jo større verdien til samples er, desto skarpere blir grafen, men den tar lengre tid å rendere.

**\addlegendentry{\\(x^2 - 2x - 1\\)}.**

Dette legger til tegnforklaringen for å identifisere funksjonen x^2 - 2x - 1.

For å legge til en annen graf i plottet, skriv bare en ny `\addplot` oppføring.

### Plotting fra data

Vitenskapelig forskning gir ofte data som må analyseres. Det neste eksemplet viser hvordan man plottar data med *pgfplots*:

```latex
Plotting fra data:

\begin{tikzpicture}
\begin{axis}[
    title={Temperaturavhengighet for løseligheten til CuSO\(_4\cdot\)5H\(_2\)O},
    xlabel={Temperatur [\textcelsius]},
    ylabel={Løselighet [g per 100 g vann]},
    xmin=0, xmax=100,
    ymin=0, ymax=120,
    xtick={0,20,40,60,80,100},
    ytick={0,20,40,60,80,100,120},
    legend pos=north west,
    ymajorgrids=true,
    grid style=dashed,
]

\addplot[
    color=blue,
    mark=square,
    ]
    coordinates {
    (0,23.1)(10,27.5)(20,32)(30,37.8)(40,44.6)(60,61.8)(80,83.8)(100,114)
    };
    \legend{CuSO\(_4\cdot\)5H\(_2\)O}

\end{axis}
\end{tikzpicture}
```

[Åpne dette `pgfplots` eksempel i Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+example+3\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Btextcomp%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0APlotting+from+data%3A%0A%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%5B%0A++++title%3D%7BTemperature+dependence+of+CuSO%5C%28_4%5Ccdot%5C%295H%5C%28_2%5C%29O+solubility%7D%2C%0A++++xlabel%3D%7BTemperature+%5B%5Ctextcelsius%5D%7D%2C%0A++++ylabel%3D%7BSolubility+%5Bg+per+100+g+water%5D%7D%2C%0A++++xmin%3D0%2C+xmax%3D100%2C%0A++++ymin%3D0%2C+ymax%3D120%2C%0A++++xtick%3D%7B0%2C20%2C40%2C60%2C80%2C100%7D%2C%0A++++ytick%3D%7B0%2C20%2C40%2C60%2C80%2C100%2C120%7D%2C%0A++++legend+pos%3Dnorth+west%2C%0A++++ymajorgrids%3Dtrue%2C%0A++++grid+style%3Ddashed%2C%0A%5D%0A%0A%5Caddplot%5B%0A++++color%3Dblue%2C%0A++++mark%3Dsquare%2C%0A++++%5D%0A++++coordinates+%7B%0A++++%280%2C23.1%29%2810%2C27.5%29%2820%2C32%29%2830%2C37.8%29%2840%2C44.6%29%2860%2C61.8%29%2880%2C83.8%29%28100%2C114%29%0A++++%7D%3B%0A++++%5Clegend%7BCuSO%5C%28_4%5Ccdot%5C%295H%5C%28_2%5C%29O%7D%0A++++%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Resultatet av denne koden vises i bildet nedenfor — LaTeX-dokumentets preambel legges automatisk til når du åpner lenken:

![Plgplotsex3.png](/files/8e9f090a02cce3dacf9ed4fdb98a13db25624fb0)

#### Forklaring av koden

Her er det noen nye kommandoer og parametere:

**title={Temperaturavhengighet for løseligheten til CuSO(\_4\cdot)5H(\_2)O}.**

Som du kanskje forventer, tildeler dette en tittel til figuren. Tittelen vil bli vist over plottet.

**xmin=0, xmax=100, ymin=0, ymax=120.**

Minimums- og maksimumsgrensene for x- og y-aksene.

**xtick={0,20,40,60,80,100}, ytick={0,20,40,60,80,100,120}.**

Punkter der markeringene plasseres. Hvis tomt, settes tick-merkene automatisk.

**legend pos=north west.**

Plasseringen av tegnforklaringsboksen. Se referansehåndboken for flere valg.

**ymajorgrids=true.**

Dette aktiverer/deaktiverer rutenettlinjer ved tick-posisjonene på y-aksen. Bruk xmajorgrids for å aktivere rutenettlinjer på x-aksen.

**grid style=dashed.**

Selvforklarende. For å vise stiplede rutenettlinjer.

**mark=square.**

Dette tegner en firkantet markering ved hvert punkt i koordinatarrayen. Hver markering kobles til den neste med en rett linje.

**coordinates {(0,23.1)(10,27.5)(20,32)...}**

Koordinatene til punktene som skal plottes. Dette er dataene du vil analysere grafisk.

Hvis dataene er i en fil, noe som er tilfellet som oftest; i stedet for kommandoene `\addplot` og `coordinates` bør du bruke `\addplot table {file_with_the_data.dat}`, resten av valgene er gyldige i dette miljøet.

### Spredningsplott

Spredningsplott brukes til å representere informasjon ved hjelp av ulike markeringer og brukes ofte ved beregning av statistisk regresjon. I dette eksemplet vil vi lage et spredningsplott ved å bruke data som ligger i en fil kalt `scattered_example.dat`, der dataene ser slik ut:

```
GPA  ma  ve  co   un
3.45 643 589 3.76 3.52
2.78 558 512 2.87 2.91
2.52 583 503 2.54 2.4
3.67 685 602 3.83 3.47
3.24 592 538 3.29 3.47
2.1 562 486 2.64 2.37
...
```

Spredningsplottet vårt bruker de to første kolonnene i dataene:

```latex
\begin{tikzpicture}
\begin{axis}[
    enlargelimits=false,
]
\addplot+[
    only marks,
    scatter,
    mark=halfcircle*,
    mark size=2.9pt]
table[meta=ma]
{scattered_example.dat};
\end{axis}
\end{tikzpicture}
```

![Scattered.png](/files/938ba719f32e889263eea98e98f4d2abb6b07abd)

[Åpne et eksempelprosjekt for spredningsplott i Overleaf (inneholder datafilen `scattered_example.dat`).](https://www.overleaf.com/project/new/template/20099?id=68399290\&templateName=Scatter+plot+example\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

#### Forklaring av koden

Parametrene som sendes til `axis` og `addplot` miljøene kan også brukes i et dataplott, med unntak av `scatter`. Nedenfor er beskrivelsen av koden:

**enlarge limits=false**

Dette vil krympe aksene slik at punktet med maksimums- og minimumsverdier ligger på kanten av plottet.

**only marks**

Svært tydelig; vil sette en markering på hvert punkt.

**scatter**

Når scatter brukes, farges punktene avhengig av en verdi; fargen gis av meta-parameteren som forklares nedenfor.

**mark=halfcircle**\*

Hvilken type markering som skal brukes på hvert punkt; se referansehåndboken for en liste over mulige verdier.

**mark size=2.9pt**

Størrelsen på hver markering; ulike enheter kan brukes.

**table\[meta=ma]{scattered\_example.dat};**

Her forteller table-kommandoen LaTeX at dataene som skal plottes, ligger i en fil. Parameteren meta=ma sendes inn for å velge kolonnen som bestemmer fargen på hvert punkt. Inne i krøllparentesene står navnet på datafilen.

### Stolpediagrammer

Stolpediagrammer (også kjent som søylediagrammer og stolpeplott) brukes til å vise innsamlede data, hovedsakelig statistiske data om en eller annen type populasjon. Stolpediagrammer i `pgfplots` er svært konfigurerbare, men her skal vi vise et enkelt eksempel:

```latex
\begin{tikzpicture}
\begin{axis}[
	x tick label style={
		/pgf/number format/1000 sep=},
	ylabel=Year,
	enlargelimits=0.05,
	legend style={at={(0.5,-0.1)},
	anchor=north,legend columns=-1},
	ybar interval=0.7,
]
\addplot
	coordinates {(2012,408184) (2011,408348)
		 (2010,414870) (2009,412156)};
\addplot
	coordinates {(2012,388950) (2011,393007)
		(2010,398449) (2009,395972)};
\legend{Men,Women}
\end{axis}
\end{tikzpicture}
```

[Åpne dette `pgfplots` eksempel på stolpekode i Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+bar+chart+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Btextcomp%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%5B%0A%09x+tick+label+style%3D%7B%0A%09%09%2Fpgf%2Fnumber+format%2F1000+sep%3D%7D%2C%0A%09ylabel%3DYear%2C%0A%09enlargelimits%3D0.05%2C%0A%09legend+style%3D%7Bat%3D%7B%280.5%2C-0.1%29%7D%2C%0A%09anchor%3Dnorth%2Clegend+columns%3D-1%7D%2C%0A%09ybar+interval%3D0.7%2C%0A%5D%0A%5Caddplot+%0A%09coordinates+%7B%282012%2C408184%29+%282011%2C408348%29%0A%09%09+%282010%2C414870%29+%282009%2C412156%29%7D%3B%0A%5Caddplot+%0A%09coordinates+%7B%282012%2C388950%29+%282011%2C393007%29+%0A%09%09%282010%2C398449%29+%282009%2C395972%29%7D%3B%0A%5Clegend%7BMen%2CWomen%7D%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Resultatet av denne koden vises i bildet nedenfor — LaTeX-dokumentets preambel legges automatisk til når du åpner lenken:

![Barchartsexample.png](/files/1bdf4ce0645902f1c1345025afa8f3564e45feff)

#### Forklaring av koden

Figuren starter med ([tidligere forklarte](#introduction))-deklarasjonen av `tikzpicture` og `axis` miljøene, men `axis` deklarasjonen har en rekke nye parametere:

**x tick label style={/pgf/number format/1000 sep=}**

Denne kodesnutten definerer en komplett stil for plottet. Med denne stilen kan du inkludere flere \addplot-kommandoer i dette aks-miljøet; de vil passe sammen og se pene ut uten ytterligere justeringer (ybar-parameteren beskrevet nedenfor er påkrevd for at dette skal fungere).

**enlargelimits=0.05.**

Å utvide grensene i et stolpediagram er nødvendig fordi denne typen diagrammer ofte krever litt ekstra plass over stolpen for å se bedre ut og/eller legge til en etikett. Tallet 0.05 er da relativt til den totale høyden på plottet.

**legend style={at={(0.5,-0.2)}, anchor=north,legend columns=-1}**

Igjen vil dette fungere helt fint det meste av tiden. Hvis noe, endre verdien -0.2 for å plassere tegnforklaringen nærmere/ lenger fra x-aksen.

**ybar interval=0.7,**

Tykkelsen på hver stolpe. 1 betyr at stolpene ligger ved siden av hverandre uten mellomrom, og 0 betyr at det ikke blir noen stolper, bare vertikale linjer.

Den `coordinates` i denne typen plott bestemmer stolpens bunnpunkt og høyde.

Etikettene på y-aksen vil vise opptil 4 sifre. Hvis tallene du arbeider med er større enn 9999 `pgfplots` vil samme notasjon som i eksemplet bli brukt.

## 3D-plott

`pgfplots` har 3D-plottefunksjonene du kan forvente i et plotteprogram.

### Plotting av matematiske uttrykk

Det finnes et enkelt eksempel på dette i [introduksjonen](#introduction), la oss arbeide med noe litt mer komplekst:

```latex
\begin{tikzpicture}
\begin{axis}[
    title=Eksempel som bruker mesh-parameteren,
    hide axis,
    colormap/cool,
]
\addplot3[
    mesh,
    samples=50,
    domain=-8:8,
]
{sin(deg(sqrt(x^2+y^2)))/sqrt(x^2+y^2)};
\addlegendentry{\(\frac{sin(r)}{r}\)}
\end{axis}
\end{tikzpicture}
```

[Åpne dette `pgfplots` 3D-eksempel i Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+3D+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%5B%0A++++title%3DExample+using+the+mesh+parameter%2C%0A++++hide+axis%2C%0A++++colormap%2Fcool%2C%0A%5D%0A%5Caddplot3%5B%0A++++mesh%2C%0A++++samples%3D50%2C%0A++++domain%3D-8%3A8%2C%0A%5D%0A%7Bsin%28deg%28sqrt%28x%5E2%2By%5E2%29%29%29%2Fsqrt%28x%5E2%2By%5E2%29%7D%3B%0A%5Caddlegendentry%7B%5C%28%5Cfrac%7Bsin%28r%29%7D%7Br%7D%5C%29%7D%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Resultatet av denne koden vises i bildet nedenfor — LaTeX-dokumentets preambel legges automatisk til når du åpner lenken:

![Pgfplots3dexample.png](/files/7046dbc99bc7366b19dbc648a434d2fe08bed936)

#### Forklaring av koden

De fleste kommandoene her er allerede forklart, men det er 3 nye ting:

**hide axis**

Dette valget i axis-miljøet er selvforklarende; aksen vil ikke bli vist.

**colormap/cool**

Er fargeskjemaet som skal brukes i plottet. Se referansehåndboken for flere fargeskjemaer.

**mesh**

Dette valget er også selvforklarende; se også surf-parameteren i introduksjonseksemplet.

**Merk**: Når du arbeider med trigonometriske funksjoner `pgfplots` bruker grader som standardenhet; hvis vinkelen er i radianer (som i dette eksemplet), må du bruke `deg` -funksjonen for å konvertere til grader.

### Konturplott

I `pgfplots` er det mulig å lage konturplott, men dataene må være forhåndsberegnet av et eksternt program. La oss se et eksempel:

```latex
\begin{tikzpicture}
\begin{axis}
[
    title={Konturplott, sett ovenfra},
    view={0}{90}
]
\addplot3[
    contour gnuplot={levels={0.8, 0.4, 0.2, -0.2}}
]
{sin(deg(sqrt(x^2+y^2)))/sqrt(x^2+y^2)};
\end{axis}
\end{tikzpicture}
```

[Åpne dette `pgfplots` eksempel på konturplott i Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+contour+plot+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A%5B%0A++++title%3D%7BContour+plot%2C+view+from+top%7D%2C%0A++++view%3D%7B0%7D%7B90%7D%0A%5D%0A%5Caddplot3%5B%0A++++contour+gnuplot%3D%7Blevels%3D%7B0.8%2C+0.4%2C+0.2%2C+-0.2%7D%7D%0A%5D%0A%7Bsin%28deg%28sqrt%28x%5E2%2By%5E2%29%29%29%2Fsqrt%28x%5E2%2By%5E2%29%7D%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%0A%5Cend%7Bdocument%7D)

Resultatet av denne koden vises i bildet nedenfor — LaTeX-dokumentets preambel legges automatisk til når du åpner lenken:

![Contourplotexample.png](/files/75a9e78713cafd628e3f176c1d66b614ac7bae63)

#### Forklaring av koden

Dette er et plott av noen konturlinjer for den samme ligningen som ble brukt i forrige seksjon. Verdien til `tittel` parameteren står i krøllparentesene fordi den inneholder et komma, så vi bruker grupperingsparentesene for å unngå forvirring med de andre parameterne som sendes til `\begin{axis}` deklarasjonen. Det er to nye kommandoer:

**view={0}{90}**

Dette endrer visningen av plottet. Parameteren sendes til axis-miljøet, noe som betyr at dette kan brukes i enhver annen type 3D-plott. Den første verdien er en rotasjon, i grader, rundt z-aksen; den andre verdien er å rotere visningen rundt x-aksen. I dette eksemplet, når vi kombinerer en rotasjon på 0° rundt z-aksen og en rotasjon på 90° rundt x-aksen, ender vi opp med en visning av plottet ovenfra.

**contour gnuplot={levels={0.8, 0.4, 0.2, -0.2}}**

Denne kodelinjen gjør to ting: Først forteller den LaTeX å bruke den eksterne programvaren gnuplot til å beregne konturlinjene; dette fungerer fint i Overleaf, men hvis du vil bruke denne kommandoen i din lokale LaTeX-installasjon må du først installere gnuplot (matlab vil også fungere; i så fall skriver du matlab i stedet for gnuplot i kommandoen). For det andre er underparameteren levels en liste over høydenivåer der konturlinjene skal beregnes.

### Plotting av en overflate fra data

For å plotte et sett data som en 3D-overflate trenger vi bare koordinatene til hvert punkt. Disse koordinatene kan være et uordnet sett eller, i dette tilfellet, en matrise:

```latex
\begin{tikzpicture}
\begin{axis}
\addplot3[
    surf,
]
coordinates {
(0,0,0) (0,1,0) (0,2,0)

(1,0,0) (1,1,0.6) (1,2,0.7)

(2,0,0) (2,1,0.7) (2,2,1.8)
};
\end{axis}
\end{tikzpicture}
```

[Åpne dette `pgfplots` 3D-overflateeksempel i Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=plotting+a+surface+from+data+with+pgfplots\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A%5Caddplot3%5B%0A++++surf%2C%0A%5D+%0Acoordinates+%7B%0A%280%2C0%2C0%29+%280%2C1%2C0%29+%280%2C2%2C0%29%0A%0A%281%2C0%2C0%29+%281%2C1%2C0.6%29+%281%2C2%2C0.7%29%0A%0A%282%2C0%2C0%29+%282%2C1%2C0.7%29+%282%2C2%2C1.8%29%0A%7D%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%0A%5Cend%7Bdocument%7D)

Resultatet av denne koden vises i bildet nedenfor — LaTeX-dokumentets preambel legges automatisk til når du åpner lenken:

![3dsurfacedata.png](/files/d7428ebf6724a86652d267ab6355bb5dbd170a5c)

#### Forklaring av dataene

Punktene som sendes til `coordinates` parameteren behandles som om de ligger i en 3 × 3-matrise, med en tom linje som skilletegn for hver rad i matrisen.

Alle valgene for 3D-plott i denne artikkelen gjelder også for dataoverflater.

### Parametrisk plott

Syntaksen for parametriske plott er litt annerledes. La oss se et eksempel:

```latex
\begin{tikzpicture}
\begin{axis}
    [
    view={60}{30},
    ]
\addplot3[
    domain=0:5*pi,
    samples = 60,
    samples y=0,
]
({sin(deg(x))},
{cos(deg(x))},
{x});
\end{axis}
\end{tikzpicture}
```

[Åpne dette `pgfplots` eksempel på parametrisk plott i Overleaf.](https://www.overleaf.com/docs?engine=pdflatex\&snip_name=pgfplots+parametric+plot+example\&snip=%5Cdocumentclass%7Barticle%7D%0A%5Cusepackage%5Bmargin%3D0.5in%5D%7Bgeometry%7D%0A%5Cusepackage%7Bpgfplots%7D%0A%5Cpgfplotsset%7Bwidth%3D10cm%2Ccompat%3D1.9%7D%0A%25%5Cusepgfplotslibrary%7Bexternal%7D%0A%25%5Ctikzexternalize%0A%5Cbegin%7Bdocument%7D%0A%5Cbegin%7Btikzpicture%7D%0A%5Cbegin%7Baxis%7D%0A++++%5B%0A++++view%3D%7B60%7D%7B30%7D%2C%0A++++%5D%0A%5Caddplot3%5B%0A++++domain%3D0%3A5%2Api%2C%0A++++samples+%3D+60%2C%0A++++samples+y%3D0%2C%0A%5D%0A%28%7Bsin%28deg%28x%29%29%7D%2C%0A%7Bcos%28deg%28x%29%29%7D%2C%0A%7Bx%7D%29%3B%0A%5Cend%7Baxis%7D%0A%5Cend%7Btikzpicture%7D%0A%5Cend%7Bdocument%7D)

Resultatet av denne koden vises i bildet nedenfor — LaTeX-dokumentets preambel legges automatisk til når du åpner lenken:

![Parametricplot.png](/files/2dbd36bb4db5cc51ad6c0c71d777f6c3cdd35c39)

#### Forklaring av koden

Det er bare to nye ting i dette eksemplet: først, `samples y=0` for å forhindre `pgfplots` fra å koble sammen spiralens ytterpunkter, og for det andre måten funksjonen som skal plottes sendes til `addplot3` miljøet. Hver parameterfunksjon grupperes inne i krøllparenteser, og de tre parameterne avgrenses med en parentes.

## Referanseguide

| Kommando/Valg/Miljø | Beskrivelse                                                                                                                       | Mulige verdier                                                                                                                                                                                                                                                                                                  |
| ------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **axis**            | Vanlige plott med lineær skalering                                                                                                |                                                                                                                                                                                                                                                                                                                 |
| **semilogxaxis**    | logaritmisk skalering av x og normal skalering for y                                                                              |                                                                                                                                                                                                                                                                                                                 |
| **semilogyaxis**    | logaritmisk skalering for y og normal skalering for x                                                                             |                                                                                                                                                                                                                                                                                                                 |
| **loglogaxis**      | logaritmisk skalering for x- og y-aksene                                                                                          |                                                                                                                                                                                                                                                                                                                 |
| **axis lines**      | endrer måten aksene tegnes på. Standard er '*boks*                                                                                | box, left, middle, center, right, none                                                                                                                                                                                                                                                                          |
| **legend pos**      | plasseringen av tegnforklaringsboksen                                                                                             | south west, south east, north west, north east, outer north east                                                                                                                                                                                                                                                |
| **mark**            | typen markeringer som brukes i dataplotting. Når ett enkelt tegn brukes, er tegnets utseende svært likt den faktiske markeringen. | \*, x , +, \|, o, asterisk, star, 10-pointed star, oplus, oplus\*, otimes, otimes\*, square, square\*, triangle, triangle\*, diamond, halfdiamond\*, halfsquare\*, right\*, left\*, Mercedes star, Mercedes star flipped, halfcircle, halfcircle\*, pentagon, pentagon\*, cubes. (cubes only work on 3d plots). |
| **colormap**        | fargeskjema som skal brukes i et plott, kan tilpasses, men det finnes noen forhåndsdefinerte fargekart                            | hot, hot2, jet, blackwhite, bluered, cool, greenyellow, redyellow, violet.                                                                                                                                                                                                                                      |

## Videre lesning

For mer informasjon, se:

* [Bruke farger i LaTeX](/latex/no/formatering/13-using-colors-in-latex.md)
* [TikZ-pakke](/latex/no/figurer-og-tabeller/05-tikz-package.md)
* [Eksternalisering av pgfplots og tikzbilder](/latex/no/sporsmal-og-svar/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md)
* [Sette inn bilder](/latex/no/flere-emner/27-inserting-images.md)
* [Lister over tabeller og figurer](/latex/no/figurer-og-tabeller/03-lists-of-tables-and-figures.md)
* [Plassering av bilder og tabeller](/latex/no/figurer-og-tabeller/02-positioning-images-and-tables.md)
* [Tegning av diagrammer direkte i LaTeX](/latex/no/figurer-og-tabeller/04-picture-environment.md)
* [Den **pgfplots** pakkedokumentasjon](http://mirrors.ctan.org/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf).
* [TikZ- og PGF-pakkene: håndbok for versjon 3.0.0](http://mirror.utexas.edu/ctan/graphics/pgf/base/doc/pgfmanual.pdf)
* [TikZ- og PGF-eksempler på TeXample.net](http://www.texample.net/tikz/examples/all/)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/no/fagspesifikt/08-pgfplots-package.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
