> 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/sv/faltspecifikt/08-pgfplots-package.md).

# Pgfplots-paketet

## Introduktion

Den `pgfplots` paket, som bygger på [`TikZ`](/latex/sv/figurer-och-tabeller/05-tikz-package.md), är ett kraftfullt visualiseringsverktyg och idealiskt för att skapa vetenskaplig/teknisk grafik. Grundidén är att du tillhandahåller indata/dataformeln och `pgfplots` gör resten.

### Dokumentets preambel

För att använda `pgfplots` För att lägga till paketet i ditt dokument, lägg till följande rad i din preambel:

`\usepackage{pgfplots}`

Du kan också konfigurera beteendet hos `pgfplots` i dokumentets preambel. För att till exempel ändra storleken på varje graf och garantera bakåtkompatibilitet (rekommenderas), lägg till följande rad:

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

Detta ändrar storleken på varje `pgfplot` -figur till 10 centimeter, vilket är enormt; du kan använda andra enheter (pt, mm, in). *compat* parametern gör att koden fungerar med paketversion 1.9 eller senare.

### Kompileringstid (kort bakgrund)

När den ursprungliga TeX-motorn konstruerades/skrevs, för mer än 40 år sedan, var den inte utformad för *direkt* framställning av grafik—detta skulle vara filer skapade av externa program (t.ex. MetaPost) och importerade i det sättningsbara dokumentet. pdfTeX:s tillkomst—som bygger nära på den ursprungliga TeX-programvaran—gav möjligheten att skapa grafik *direkt* genom att använda pdfTeX:s nya inbyggda TeX-språkskommandon (kallade *primitiver*) som kan skriva ut de PDF-operatorer/data som krävs för att skapa grafik. Skapandet av pdfTeX ledde till utvecklingen av avancerade LaTeX-grafikpaket, såsom `TikZ`, `pgfplots` osv., som kan producera grafik kodad med hjälp av högnivåkommandon i LaTeX.

Men bakom kulisserna, och djupt inne i pdfTeX-motorn (och andra motorer), måste dessa högnivåkommandon för LaTeX-grafik bearbetas genom att "konverteras" tillbaka till lågnivåkommandon i pdfTeX-motorn (primtivkommandon), som faktiskt genererar (output) de PDF-operatorer som krävs för att producera den resulterande figuren/figurerna. Den bearbetningen av grafiska LaTeX-kommandon—utvidgning och exekvering av primitivkommandon—kan ta en icke oväsentlig mängd tid. Även ett enda högnivåkommando för LaTeX-grafik, tillsammans med dess motsvarande data, kan kräva upprepad körning av *många* lågnivåkommandon i TeX-motorn (primtivkommandon). Ur slutanvändarens perspektiv kan dokument som innehåller flera `pgfplots` figurer och/eller mycket komplex grafik ta avsevärd tid att rendera (kompilera).

### Minska kompileringstiden

För att öka hastigheten för dokumentkompilering kan du konfigurera `pgfplots` paketet så att figurerna exporteras till separata PDF-filer och sedan importeras till dokumentet: kompilera en gång och återanvänd sedan figurerna. För att göra det, lägg till koden nedan i preambeln:

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

Se [den här hjälpartikeln](/latex/sv/fragor-och-svar/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md) för mer information om hur du sätter upp tikz-externalisering i ditt Overleaf-projekt.

## Grundläggande exempel (även externisering av figurerna)

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

% Vi kommer att externisera figurerna
\usepgfplotslibrary{external}
\tikzexternalize

\begin{document}

Det första exemplet är 2D- och 3D-matematiska uttryck plottade sida vid sida.

%Här börjar 2D-grafen
\begin{tikzpicture}
\begin{axis}
\addplot[color=red]{exp(x)};
\end{axis}
\end{tikzpicture}
%Här slutar 2D-grafen
\hskip 5pt
%Här börjar 3D-grafen
\begin{tikzpicture}
\begin{axis}
\addplot3[
    surf,
]
{exp(-x^2-y^2)*x};
\end{axis}
\end{tikzpicture}
%Här slutar 3D-grafen

\end{document}
```

[Öppna detta `pgfplots` exempel 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)

Följande bild visar resultatet som produceras av koden ovan:

![Plgplotsex1OLV2.png](/files/4e6b0d6e71f3494bfdc0aef49535f4bd897a2cd4)

### Förklaring av koden

Eftersom `pgfplots` bygger på `tikz` grafen måste vara inuti en `tikzpicture` miljö. Sedan kommer miljödeklarationen `\begin{axis}`, `\end{axis}` att ställa in korrekt skalning för grafen—kolla [Referensguide](#reference-guide) för andra axelmiljöer.

För att lägga till en faktisk graf används kommandot `\addplot[color=red]{log(x)};` används. Inuti hakparenteserna `[...]`, kan vissa alternativ skickas med; här sätter vi `color` grafens storlek till `red`. Hakparenteserna är obligatoriska; om inga alternativ skickas, lämna ett tomt mellanslag mellan dem. Inuti klammerparenteserna lägger du funktionen som ska plottas. Det är viktigt att komma ihåg att detta kommando måste avslutas med ett semikolon (;).

För att placera en andra graf bredvid den första deklarerar du en ny `tikzpicture` miljö. Infoga ingen ny rad, utan ett litet tomt mellanrum; i det här fallet `hskip 10pt` kommer att infoga ett tomt utrymme med bredden 10pt.

Resten av syntaxen är densamma, förutom `\addplot3 [surf,]{exp(-x^2-y^2)*x};`. Detta kommer att lägga till en 3D-graf, och alternativet `surf` inom hakparenteserna anger att det är en ytgraf. Funktionen som ska plottas måste placeras inom klammerparenteserna. Glöm återigen inte att sätta ett semikolon (;) i slutet av kommandot.

**Obs**: Det rekommenderas som god praxis att indentera koden—se den andra grafen i exemplet ovan—och att lägga till ett kommatecken (,) i slutet av varje alternativ som skickas till `\addplot`. På så sätt blir koden mer läsbar och det är lättare att lägga till fler alternativ vid behov.

## 2D-grafer

`pgfplots`funktionerna för 2D-plotting är mycket omfattande—och du kan anpassa dina grafer efter dina behov. Ändå ger standardalternativen vanligtvis mycket bra resultat, så allt du behöver göra är att mata in data så gör LaTeX resten.

### Plotta matematiska uttryck

Här är ett exempel:

```latex
\begin{tikzpicture}
\begin{axis}[
    axis lines = left,
    xlabel = \(x\),
    ylabel = {\(f(x)\)},
]
%Nedan definieras den röda parabeln
\addplot [
    domain=-10:10,
    samples=100,
    color=red,
]
{x^2 - 2*x - 1};
\addlegendentry{\(x^2 - 2x - 1\)}
%Här definieras den blå parabeln
\addplot [
    domain=-10:10,
    samples=100,
    color=blue,
    ]
    {x^2 + 2*x + 1};
\addlegendentry{\(x^2 + 2x + 1\)}

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

[Öppna detta `pgfplots` exempel 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 från denna kod visas i bilden nedan—LaTeX-dokumentets preambel läggs automatiskt till när du öppnar länken:

![Plgplotsex2.png](/files/7b2273801ccc9e14e26cb9250d21c46377483f54)

#### Förklaring av koden

Låt oss analysera de nya kommandona rad för rad:

**axellinjer = vänster.**

Detta kommer att placera axlarna endast på grafens vänstra och nedre sidor, i stället för den standardiserade rutan. Fler anpassningsalternativ finns i referensguiden.

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

Självförklarande parameternamn; dessa låter dig sätta en etikett på den horisontella och vertikala axeln. Lägg märke till ylabel-värdet inom klammerparenteser, dessa parenteser talar om för pgfplots hur texten ska grupperas. xlabel kunde också ha haft parenteser. Detta är användbart för komplicerade etiketter som kan förvirra pgfplots.

**\addplot.**

Detta kommer att lägga till en graf till axeln; den allmänna användningen beskrevs i introduktionen. Det finns två nya parametrar i det här exemplet.

**domain=-10:10.**

Detta fastställer intervallet för x-värden.

**samples=100.**

Bestämmer antalet punkter i intervallet som definieras av domain. Ju större värde på samples, desto skarpare blir grafen, men det tar längre tid att rendera.

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

Detta lägger till legenden för att identifiera funktionen x^2 - 2x - 1.

För att lägga till en annan graf till plottet skriver du bara en ny `\addplot` post.

### Plottning från data

Vetenskaplig forskning ger ofta data som måste analyseras. Nästa exempel visar hur man plottar data med *pgfplots*:

```latex
Plottning från data:

\begin{tikzpicture}
\begin{axis}[
    title={Temperaturberoende av lösligheten hos CuSO\(_4\cdot\)5H\(_2\)O},
    xlabel={Temperatur [\textcelsius]},
    ylabel={Löslighet [g per 100 g vatten]},
    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}
```

[Öppna detta `pgfplots` exempel 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 från denna kod visas i bilden nedan—LaTeX-dokumentets preambel läggs automatiskt till när du öppnar länken:

![Plgplotsex3.png](/files/394d9dcdb6864892d7ed1b30d940ced528f89c78)

#### Förklaring av koden

Det finns några nya kommandon och parametrar här:

**title={Temperaturberoende av lösligheten hos CuSO(\_4\cdot)5H(\_2)O}.**

Som du kan förvänta dig tilldelas figuren en titel. Titeln visas ovanför grafen.

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

Minimala och maximala gränser för x- och y-axlarna.

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

Punkter där markeringarna placeras. Om tomt sätts tick-markeringarna automatiskt.

**legend pos=north west.**

Placering av legendrutan. Se referensguiden för fler alternativ.

**ymajorgrids=true.**

Detta aktiverar/inaktiverar rutnät vid tick-positionerna på y-axeln. Använd xmajorgrids för att aktivera rutnät på x-axeln.

**grid style=dashed.**

Självförklarande. För att visa streckade rutnätslinjer.

**mark=square.**

Detta ritar en kvadratisk markering vid varje punkt i koordinatmatrisen. Varje markering kommer att kopplas till nästa med en rak linje.

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

Koordinaterna för punkterna som ska plottas. Detta är data som du vill analysera grafiskt.

Om data finns i en fil, vilket oftast är fallet; i stället för kommandot `\addplot` och `coordinates` bör du använda `\addplot table {file_with_the_data.dat}`, resten av alternativen är giltiga i denna miljö.

### Spridningsdiagram

Spridningsdiagram används för att representera information med hjälp av någon form av markeringar och används ofta när man beräknar statistisk regression. I det här exemplet skapar vi ett spridningsdiagram med data som finns i en fil som heter `scattered_example.dat`, där datan ser ut så här:

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

Vårt spridningsdiagram använder de två första kolumnerna i datan:

```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/b8bf4f409ec2d5067c87c7040e5fb89045c08d5a)

[Öppna ett exempelprojekt för spridningsdiagram i Overleaf (innehåller 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=)

#### Förklaring av koden

Parametrarna som skickas till `axis` och `addplot` miljöerna kan också användas i ett dataplot, förutom `scatter`. Nedan följer en beskrivning av koden:

**enlarge limits=false**

Detta kommer att krympa axlarna så att punkten med max- och minvärden hamnar vid grafens kant.

**only marks**

Väldigt tydligt, kommer att sätta en markering på varje punkt.

**scatter**

När scatter används färgsätts punkterna beroende på ett värde, och färgen ges av meta-parametern som förklaras nedan.

**mark=halfcircle**\*

Vilken typ av markering som ska användas på varje punkt; se referensguiden för en lista över möjliga värden.

**mark size=2.9pt**

Storleken på varje markering; olika enheter kan användas.

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

Här talar table-kommandot om för latex att datan som ska plottas finns i en fil. Parametern meta=ma skickas för att välja den kolumn som bestämmer färgen för varje punkt. Inuti klammerparenteserna står namnet på datafilen.

### Stapeldiagram

Stapeldiagram (även kallade bar charts och bar plots) används för att visa insamlade data, främst statistiska data om en population av något slag. Stapeldiagram i `pgfplots` är mycket konfigurerbara, men här ska vi visa ett enkelt exempel:

```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}
```

[Öppna detta `pgfplots` exempel på stapel-kod 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 från denna kod visas i bilden nedan—LaTeX-dokumentets preambel läggs automatiskt till när du öppnar länken:

![Barchartsexample.png](/files/3b4cd4ba3924b2ba7836edef529b7c28f9c2405c)

#### Förklaring av koden

Figuren börjar med den ([tidigare förklarade](#introduction)) deklarationen av `tikzpicture` och `axis` miljöerna, men `axis` deklarationen har ett antal nya parametrar:

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

Denna kodsnutt definierar en komplett stil för grafen. Med denna stil kan du inkludera flera \addplot-kommandon inom denna axis-miljö; de passar ihop och ser bra ut tillsammans utan ytterligare justeringar (parametern ybar som beskrivs nedan är obligatorisk för att detta ska fungera).

**enlargelimits=0.05.**

Att förstora gränserna i ett stapeldiagram är nödvändigt eftersom den här typen av diagram ofta kräver lite extra utrymme ovanför stapeln för att se bättre ut och/eller för att lägga till en etikett. Talet 0.05 är då relativt till den totala höjden på diagrammet.

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

Återigen fungerar detta oftast helt bra. Om något, ändra värdet -0.2 för att placera legenden närmare/längre från x-axeln.

**ybar interval=0.7,**

Tjockleken på varje stapel. 1 betyder att staplarna ligger direkt intill varandra utan mellanrum och 0 betyder att det inte blir några staplar, bara vertikala linjer.

Den `coordinates` i den här typen av diagram bestämmer stapelns baspunkt och dess höjd.

Etiketterna på y-axeln visar upp till 4 siffror. Om talen du arbetar med är större än 9999 `pgfplots` kommer samma notation som i exemplet att användas.

## 3D-grafer

`pgfplots` har 3D-plottningsfunktioner som du kan förvänta dig i ett plottprogram.

### Plotta matematiska uttryck

Det finns ett enkelt exempel på detta i [introduktionen](#introduction), låt oss arbeta med något lite mer komplext:

```latex
\begin{tikzpicture}
\begin{axis}[
    title=Exempel med mesh-parametern,
    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}
```

[Öppna detta `pgfplots` 3D-exempel 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 från denna kod visas i bilden nedan—LaTeX-dokumentets preambel läggs automatiskt till när du öppnar länken:

![Pgfplots3dexample.png](/files/019ddc986d7212fc66ab0ba5d9c5194b0f28404e)

#### Förklaring av koden

De flesta kommandon här har redan förklarats, men det finns 3 nya saker:

**dölj axlarna**

Det här alternativet i axis-miljön talar för sig självt; axeln visas inte.

**colormap/cool**

Är färgschemat som ska användas i grafen. Se referensguiden för fler färgscheman.

**mesh**

Det här alternativet är också självförklarande; se även parametern surf i introduktionsexemplet.

**Obs**: När du arbetar med trigonometriska funktioner `pgfplots` använder grader som standardenhet; om vinkeln är i radianer (som i detta exempel) måste du använda `deg` funktionen för att omvandla till grader.

### Konturdiagram

I `pgfplots` är det möjligt att rita konturdiagram, men data måste vara förberäknad av ett externt program. Låt oss se ett exempel:

```latex
\begin{tikzpicture}
\begin{axis}
[
    title={Konturdiagram, vy uppifrån},
    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}
```

[Öppna detta `pgfplots` exempel på konturdiagram 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 från denna kod visas i bilden nedan—LaTeX-dokumentets preambel läggs automatiskt till när du öppnar länken:

![Contourplotexample.png](/files/9c4248270b504320e23bb3d86d81d712890d1858)

#### Förklaring av koden

Detta är en graf över några konturlinjer för samma ekvation som användes i föregående avsnitt. Värdet på `titel` parametern finns i klammerparenteser eftersom den innehåller ett kommatecken, så vi använder grupperingsparenteserna för att undvika förväxling med de andra parametrar som skickas till `\begin{axis}` deklarationen. Det finns två nya kommandon:

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

Detta ändrar grafens vy. Parametern skickas till axis-miljön, vilket betyder att den kan användas i vilken annan typ av 3D-graf som helst. Det första värdet är en rotation, i grader, runt z-axeln; det andra värdet roterar vyn runt x-axeln. I det här exemplet, när vi kombinerar en rotation på 0° runt z-axeln och en rotation på 90° runt x-axeln, får vi en vy av grafen uppifrån.

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

Den här kodraden gör två saker: För det första säger den till LaTeX att använda den externa programvaran gnuplot för att beräkna konturlinjerna; detta fungerar bra i Overleaf, men om du vill använda detta kommando i din lokala LaTeX-installation måste du först installera gnuplot (matlab fungerar också; i så fall skriver du matlab i stället för gnuplot i kommandot). För det andra är underparametern levels en lista med nivåvärden där konturlinjerna ska beräknas.

### Plotta en yta från data

För att plotta en uppsättning data som en 3D-yta behöver vi bara koordinaterna för varje punkt. Dessa koordinater kan vara en oordnad mängd eller, i det här fallet, en matris:

```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}
```

[Öppna detta `pgfplots` 3D-yta-exempel 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 från denna kod visas i bilden nedan—LaTeX-dokumentets preambel läggs automatiskt till när du öppnar länken:

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

#### Förklaring av data

Punkterna som skickas till `coordinates` parametern behandlas som om de ingår i en 3 × 3-matris, där en tom rad används som avgränsare för varje matrisrad.

Alla alternativ för 3D-grafer i den här artikeln gäller även dataytor.

### Parametrisk graf

Syntaxen för parametriska grafer är lite annorlunda. Låt oss se ett exempel:

```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}
```

[Öppna detta `pgfplots` exempel på parametrisk graf 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 från denna kod visas i bilden nedan—LaTeX-dokumentets preambel läggs automatiskt till när du öppnar länken:

![Parametricplot.png](/files/1257c582c5d6c01f1403ff2cfb3534ab2c6d6fcd)

#### Förklaring av koden

Det finns bara två nya saker i det här exemplet: först, `samples y=0` för att förhindra `pgfplots` att de yttersta punkterna i spiralen kopplas samman och; för det andra hur funktionen som ska plottas skickas till `addplot3` miljön. Varje parameterfunktion grupperas inom klammerparenteser och de tre parametrarna avgränsas med parenteser.

## Referensguide

| Kommando/Alternativ/Miljö | Beskrivning                                                                                                                               | Möjliga värden                                                                                                                                                                                                                                                                                                  |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **axis**                  | Normala grafer med linjär skala                                                                                                           |                                                                                                                                                                                                                                                                                                                 |
| **semilogxaxis**          | logaritmisk skala för x och normal skala för y                                                                                            |                                                                                                                                                                                                                                                                                                                 |
| **semilogyaxis**          | logaritmisk skala för y och normal skala för x                                                                                            |                                                                                                                                                                                                                                                                                                                 |
| **loglogaxis**            | logaritmisk skala för x- och y-axlarna                                                                                                    |                                                                                                                                                                                                                                                                                                                 |
| **axellinjer**            | ändrar hur axlarna ritas. Standard är '*box*                                                                                              | box, left, middle, center, right, none                                                                                                                                                                                                                                                                          |
| **legendposition**        | positionen för legendrutan                                                                                                                | south west, south east, north west, north east, outer north east                                                                                                                                                                                                                                                |
| **mark**                  | typ av markeringar som används vid dataplotting. När ett enskilt tecken används liknar tecknets utseende den faktiska markeringen mycket. | \*, 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**              | färgschema som ska användas i en graf, kan anpassas, men det finns några fördefinierade colormaps                                         | hot, hot2, jet, blackwhite, bluered, cool, greenyellow, redyellow, violet.                                                                                                                                                                                                                                      |

## Vidare läsning

För mer information, se:

* [Använda färger i LaTeX](/latex/sv/formatering/13-using-colors-in-latex.md)
* [TikZ-paketet](/latex/sv/figurer-och-tabeller/05-tikz-package.md)
* [Externisering av pgfplots och tikzbilder](/latex/sv/fragor-och-svar/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md)
* [Infoga bilder](/latex/sv/fler-amnen/27-inserting-images.md)
* [Förteckningar över tabeller och figurer](/latex/sv/figurer-och-tabeller/03-lists-of-tables-and-figures.md)
* [Placering av bilder och tabeller](/latex/sv/figurer-och-tabeller/02-positioning-images-and-tables.md)
* [Rita diagram direkt i LaTeX](/latex/sv/figurer-och-tabeller/04-picture-environment.md)
* [Den **pgfplots** paketdokumentation](http://mirrors.ctan.org/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf).
* [TikZ- och PGF-paketen: manual för version 3.0.0](http://mirror.utexas.edu/ctan/graphics/pgf/base/doc/pgfmanual.pdf)
* [TikZ- och PGF-exempel 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/sv/faltspecifikt/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.
