> 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/nl/vakspecifiek/08-pgfplots-package.md).

# Pgfplots-pakket

## Inleiding

De `pgfplots` pakket, dat gebaseerd is op [`TikZ`](/latex/nl/afbeeldingen-en-tabellen/05-tikz-package.md), is een krachtig visualisatiehulpmiddel en ideaal voor het maken van wetenschappelijke/technische grafieken. Het basisidee is dat u de invoergegevens/formule aanlevert en `pgfplots` doet de rest.

### De documentpreambule

Om de `pgfplots` pakket in uw document, voeg de volgende regel toe aan uw preambule:

`\usepackage{pgfplots}`

U kunt ook het gedrag van `pgfplots` in de documentpreambule configureren. Voeg bijvoorbeeld de volgende regel toe om de grootte van elke plot te wijzigen en achterwaartse compatibiliteit te garanderen (aanbevolen):

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

Dit verandert de grootte van elke `pgfplot` figuur naar 10 centimeter, wat enorm is; u kunt andere eenheden gebruiken (pt, mm, in). De *compat* parameter zorgt ervoor dat de code werkt met pakketversie 1.9 of later.

### Compilatietijd (korte achtergrond)

Toen de oorspronkelijke TeX-engine meer dan 40 jaar geleden werd bedacht/geschreven, was hij niet ontworpen voor *directe* productie van grafieken — die moesten bestanden zijn die door externe programma's (bijv. MetaPost) werden gemaakt en in het opgemaakte document werden geïmporteerd. Met de komst van pdfTeX — dat nauw is gebaseerd op de oorspronkelijke TeX-software — kwam de mogelijkheid om grafieken te maken *rechtstreeks* door gebruik te maken van de nieuwe ingebouwde TeX-taalcommando's van pdfTeX (genoemd *primitieven*) die de PDF-operatoren/-gegevens kunnen uitvoeren die nodig zijn om grafieken te produceren. De ontwikkeling van pdfTeX leidde tot de ontwikkeling van geavanceerde LaTeX-grafiekpakketten, zoals `TikZ`, `pgfplots` enz., die grafieken kunnen produceren die gecodeerd zijn met behulp van LaTeX-commando's op hoog niveau.

Echter, achter de schermen en diep in de pdfTeX-engine (en andere engines) moeten die LaTeX-grafiekcommando's op hoog niveau worden verwerkt door ze terug te "converteren" naar commando's op laag niveau van de pdfTeX-engine (primitieven) die daadwerkelijk de PDF-operatoren genereren (uitvoeren) die nodig zijn om de resulterende figuur(en) te produceren. Die verwerking van grafische LaTeX-commando's — expansie en uitvoering van primitieve commando's — kan een niet-verwaarloosbare hoeveelheid tijd kosten. Zelfs één enkel LaTeX-grafiekcommando op hoog niveau, samen met de bijbehorende gegevens, kan herhaalde uitvoering vereisen van *veel* commando's op laag niveau van de TeX-engine (primitieven). Vanuit het perspectief van de eindgebruiker kunnen documenten met meerdere `pgfplots` figuren en/of zeer complexe grafieken behoorlijk lang duren om te renderen (compileren).

### Compilatietijd verkorten

Om de snelheid van het compileren van documenten te verhogen, kunt u het `pgfplots` pakket zo configureren dat de figuren naar afzonderlijke PDF-bestanden worden geëxporteerd en vervolgens in het document worden geïmporteerd: compileer één keer en hergebruik daarna de figuren. Voeg daarvoor de onderstaande code toe aan de preambule:

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

Zie [dit helpartikel](/latex/nl/vragen-en-antwoorden/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md) voor meer details over het instellen van tikz-externalisatie in uw Overleaf-project.

## Basisvoorbeeld (ook met externe figuren)

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

% We zullen de figuren extern maken
\usepgfplotslibrary{external}
\tikzexternalize

\begin{document}

Het eerste voorbeeld toont 2D- en 3D-wiskundige uitdrukkingen naast elkaar uitgezet.

%Hier begint de 2D-plot
\begin{tikzpicture}
\begin{axis}
\addplot[color=red]{exp(x)};
\end{axis}
\end{tikzpicture}
%Hier eindigt de 2D-plot
\hskip 5pt
%Hier begint de 3D-plot
\begin{tikzpicture}
\begin{axis}
\addplot3[
    surf,
]
{exp(-x^2-y^2)*x};
\end{axis}
\end{tikzpicture}
%Hier eindigt de 3D-plot

\end{document}
```

[Open dit `pgfplots` voorbeeld in 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)

De volgende afbeelding toont het resultaat dat door de bovenstaande code wordt geproduceerd:

![Plgplotsex1OLV2.png](/files/8d5af178ba711241c892bd507206a492342e1d8e)

### Uitleg van de code

Omdat `pgfplots` is gebaseerd op `tikz` de plot moet binnen een `tikzpicture` omgeving staan. Dan zal de omgevingsdeclaratie `\begin{axis}`, `\end{axis}` de juiste schaal voor de plot instellen — bekijk de [Naslaggids](#reference-guide) voor andere as-omgevingen.

Om daadwerkelijk een plot toe te voegen, wordt het commando `\addplot[color=red]{log(x)};` gebruikt. Binnen de vierkante haken `[...]`, kunnen enkele opties worden meegegeven; hier stellen we de `kleur` van de plot in op `red`.

Om een tweede plot naast de eerste te plaatsen, declareert u een nieuwe `tikzpicture` omgeving. Voeg geen nieuwe regel in, maar een kleine lege ruimte; in dit geval `hskip 10pt` voegt een lege ruimte van 10 pt breed in.

De rest van de syntax is hetzelfde, behalve voor de `\addplot3 [surf,]{exp(-x^2-y^2)*x};`. Dit voegt een 3d-plot toe, en de optie `surf` binnen de vierkante haken geeft aan dat het een oppervlakplot is. De functie die geplot moet worden, moet tussen accolades staan. Vergeet opnieuw niet een puntkomma (;) aan het einde van het commando te zetten.

**Opmerking**: Het wordt aanbevolen als goede praktijk de code in te springen — zie de tweede plot in het bovenstaande voorbeeld — en aan het einde van elke optie die aan `\addplot`. Op deze manier is de code beter leesbaar en is het eenvoudiger om indien nodig extra opties toe te voegen.

## 2D-plots

`pgfplots`De 2D-plotfunctionaliteit is zeer uitgebreid — en u kunt uw plots personaliseren naar uw wensen. Toch geven de standaardopties meestal zeer goede resultaten, dus u hoeft alleen de gegevens aan te leveren en LaTeX doet de rest.

### Wiskundige uitdrukkingen plotten

Hier is een voorbeeld:

```latex
\begin{tikzpicture}
\begin{axis}[
    assenlijnen = links,
    xlabel = \(x\),
    ylabel = {\(f(x)\)},
]
%Hieronder wordt de rode parabool gedefinieerd
\addplot [
    domain=-10:10,
    samples=100,
    color=red,
]
{x^2 - 2*x - 1};
\addlegendentry{\(x^2 - 2x - 1\)}
%Hier wordt de blauwe parabool gedefinieerd
\addplot [
    domain=-10:10,
    samples=100,
    color=blue,
    ]
    {x^2 + 2*x + 1};
\addlegendentry{\(x^2 + 2x + 1\)}

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

[Open dit `pgfplots` voorbeeld in 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)

De uitvoer van deze code wordt getoond in de afbeelding hieronder — de documentpreambule van LaTeX wordt automatisch toegevoegd wanneer u de link opent:

![Plgplotsex2.png](/files/c9a10e2198604a71ac4b43b39b2aa39000bb9449)

#### Uitleg van de code

Laten we de nieuwe commando's regel voor regel analyseren:

**assenlijnen = links.**

Dit stelt de assen alleen in aan de linker- en onderzijde van de plot, in plaats van het standaardvak. Meer aanpassingsopties vindt u in de referentiegids.

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

De parameternamen spreken voor zich; hiermee kunt u een label op de horizontale en verticale as plaatsen. Let op de ylabel-waarde tussen accolades; deze accolades vertellen pgfplots hoe de tekst gegroepeerd moet worden. De xlabel had ook accolades kunnen hebben. Dit is handig voor ingewikkelde labels die pgfplots kunnen verwarren.

**\addplot.**

Dit voegt een plot toe aan de as; het algemene gebruik werd in de inleiding beschreven. Er zijn twee nieuwe parameters in dit voorbeeld.

**domain=-10:10.**

Dit bepaalt het bereik van de x-waarden.

**samples=100.**

Bepaalt het aantal punten in het interval dat door domain wordt gedefinieerd. Hoe groter de waarde van samples, hoe scherper de grafiek die u krijgt, maar het duurt langer om te renderen.

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

Dit voegt de legenda toe om de functie x^2 - 2x - 1 te identificeren.

Om nog een grafiek aan de plot toe te voegen, schrijft u gewoon een nieuwe `\addplot` invoer.

### Plotten vanuit gegevens

Wetenschappelijk onderzoek levert vaak gegevens op die geanalyseerd moeten worden. Het volgende voorbeeld laat zien hoe gegevens geplot kunnen worden met *pgfplots*:

```latex
Plotten vanuit gegevens:

\begin{tikzpicture}
\begin{axis}[
    title={Temperatuurafhankelijkheid van de oplosbaarheid van CuSO\(_4\cdot\)5H\(_2\)O},
    xlabel={Temperatuur [\textcelsius]},
    ylabel={Oplosbaarheid [g per 100 g water]},
    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}
```

[Open dit `pgfplots` voorbeeld in 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)

De uitvoer van deze code wordt getoond in de afbeelding hieronder — de documentpreambule van LaTeX wordt automatisch toegevoegd wanneer u de link opent:

![Plgplotsex3.png](/files/f19723c8f345b8a75f1decff1c0c53c15d405ab8)

#### Uitleg van de code

Hier zijn enkele nieuwe commando's en parameters:

**title={Temperatuurafhankelijkheid van de oplosbaarheid van CuSO(\_4\cdot)5H(\_2)O}.**

Zoals u mag verwachten, wijst dit een titel toe aan de figuur. De titel wordt boven de plot weergegeven.

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

Minimale en maximale grenzen van de x- en y-assen.

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

Punten waar de markeringen worden geplaatst. Als dit leeg is, worden de tikmarkeringen automatisch ingesteld.

**legend pos=north west.**

Positie van het legenda-vak. Raadpleeg de referentiegids voor meer opties.

**ymajorgrids=true.**

Dit schakelt rasterlijnen in/uit op de tikposities op de y-as. Gebruik xmajorgrids om rasterlijnen op de x-as in te schakelen.

**grid style=dashed.**

Spreekt voor zich. Om gestippelde rasterlijnen weer te geven.

**mark=square.**

Dit tekent een vierkante markering bij elk punt in de coördinatenreeks. Elke markering wordt met de volgende verbonden door een rechte lijn.

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

Coördinaten van de punten die geplot moeten worden. Dit zijn de gegevens die u grafisch wilt analyseren.

Als de gegevens in een bestand staan, wat meestal het geval is; gebruik dan in plaats van de commando's `\addplot` en `coordinates` moet u gebruiken `\addplot table {file_with_the_data.dat}`, de rest van de opties is geldig in deze omgeving.

### Spreidingsdiagrammen

Spreidingsdiagrammen worden gebruikt om informatie weer te geven met behulp van allerlei markeringen en worden vaak gebruikt bij het berekenen van statistische regressie. In dit voorbeeld maken we een spreidingsdiagram met gegevens in een bestand genaamd `scattered_example.dat`, waarin de gegevens er als volgt uitzien:

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

Ons spreidingsdiagram gebruikt de eerste twee kolommen van de gegevens:

```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/31f9d1f852ebf67e2036524978bce7ba1885d5d7)

[Open een voorbeeldproject voor een spreidingsdiagram in Overleaf (bevat het gegevensbestand `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=)

#### Uitleg van de code

De parameters die aan de `axis` en `addplot` omgevingen worden doorgegeven, kunnen ook in een gegevensplot worden gebruikt, behalve `scatter`. Hieronder volgt de beschrijving van de code:

**enlarge limits=false**

Dit verkleint de assen zodat het punt met de maximale en minimale waarden aan de rand van de plot ligt.

**only marks**

Zeer expliciet: plaatst op elk punt een markering.

**scatter**

Wanneer scatter wordt gebruikt, krijgen de punten een kleur afhankelijk van een waarde; de kleur wordt bepaald door de meta-parameter, die hieronder wordt uitgelegd.

**mark=halfcircle**\*

Het type markering dat op elk punt wordt gebruikt; raadpleeg de referentiegids voor een lijst met mogelijke waarden.

**mark size=2.9pt**

De grootte van elke markering; er kunnen verschillende eenheden worden gebruikt.

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

Hier geeft het commando table aan LaTeX door dat de gegevens die geplot moeten worden in een bestand staan. De parameter meta=ma wordt meegegeven om de kolom te kiezen die de kleur van elk punt bepaalt. Tussen de accolades staat de naam van het gegevensbestand.

### Staafdiagrammen

Staafdiagrammen (ook wel bar charts en bar plots genoemd) worden gebruikt om verzamelde gegevens weer te geven, voornamelijk statistische gegevens over een bepaalde populatie. Staafdiagrammen in `pgfplots` zijn sterk configureerbaar, maar hier laten we een eenvoudig voorbeeld zien:

```latex
\begin{tikzpicture}
\begin{axis}[
	x tick label style={
		/pgf/number format/1000 sep=},
	ylabel=Jaar,
	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}
```

[Open dit `pgfplots` voorbeeld van staafcode in 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)

De uitvoer van deze code wordt getoond in de afbeelding hieronder — de documentpreambule van LaTeX wordt automatisch toegevoegd wanneer u de link opent:

![Barchartsexample.png](/files/170712ee64511252e5d63fa166fa023c5e3f3cc7)

#### Uitleg van de code

De figuur begint met de ([eerder uitgelegde](#introduction)) declaratie van de `tikzpicture` en `axis` omgevingen, maar de `axis` declaratie heeft een aantal nieuwe parameters:

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

Dit codefragment definieert een volledige stijl voor de plot. Met deze stijl kunt u meerdere \addplot-commando's binnen deze as-omgeving opnemen; ze passen mooi bij elkaar zonder verdere aanpassingen (de hieronder beschreven parameter ybar is verplicht om dit te laten werken).

**enlargelimits=0.05.**

Het vergroten van de grenzen in een staafdiagram is nodig omdat dit soort diagrammen vaak wat extra ruimte boven de staaf nodig hebben om er beter uit te zien en/of een label toe te voegen. Het getal 0,05 is dan relatief ten opzichte van de totale hoogte van de plot.

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

Opnieuw werkt dit meestal prima. Zo niet, verander dan de waarde -0,2 om de legenda dichter bij/van de x-as te plaatsen.

**ybar interval=0.7,**

Dikte van elke staaf. 1 betekent dat de staven zonder tussenruimte naast elkaar staan, en 0 betekent dat er geen staven zijn, maar alleen verticale lijnen.

De `coordinates` bepalen in dit soort plot het basispunt van de staaf en de hoogte ervan.

De labels op de y-as tonen maximaal 4 cijfers. Als de getallen waarmee u werkt groter zijn dan 9999 `pgfplots` gebruikt men dezelfde notatie als in het voorbeeld.

## 3D-plots

`pgfplots` heeft de 3D-plotmogelijkheden die u van plotsoftware mag verwachten.

### Wiskundige uitdrukkingen plotten

Er is een eenvoudig voorbeeld hiervan bij de [inleiding](#introduction), laten we aan iets iets complexers werken:

```latex
\begin{tikzpicture}
\begin{axis}[
    title=Voorbeeld met de mesh-parameter,
    assen verbergen,
    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}
```

[Open dit `pgfplots` 3D-voorbeeld in 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)

De uitvoer van deze code wordt getoond in de afbeelding hieronder — de documentpreambule van LaTeX wordt automatisch toegevoegd wanneer u de link opent:

![Pgfplots3dexample.png](/files/f5768bbc4cb73def98a3ec61b52076d13e707d76)

#### Uitleg van de code

De meeste commando's hier zijn al uitgelegd, maar er zijn drie nieuwe dingen:

**assen verbergen**

Deze optie in de as-omgeving spreekt voor zich; de assen worden niet weergegeven.

**colormap/cool**

Is het kleurenschema dat in de plot wordt gebruikt. Raadpleeg de referentiegids voor meer kleurenschema's.

**mesh**

Deze optie spreekt ook voor zich; bekijk ook de parameter surf in het inleidende voorbeeld.

**Opmerking**: Wanneer u met goniometrische functies werkt `pgfplots` gebruikt men graden als standaardeenheid; als de hoek in radialen staat (zoals in dit voorbeeld), moet u de `deg` functie gebruiken om naar graden om te zetten.

### Contourplots

In `pgfplots` is het mogelijk om contourplots te tekenen, maar de gegevens moeten vooraf worden berekend door een extern programma. Laten we een voorbeeld bekijken:

```latex
\begin{tikzpicture}
\begin{axis}
[
    title={Contourplot, aanzicht van boven},
    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}
```

[Open dit `pgfplots` voorbeeld van een contourplot in 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)

De uitvoer van deze code wordt getoond in de afbeelding hieronder — de documentpreambule van LaTeX wordt automatisch toegevoegd wanneer u de link opent:

![Contourplotexample.png](/files/cb9c0dbb5662a1a052476fe33bc868bd0e5e25a3)

#### Uitleg van de code

Dit is een plot van enkele contourlijnen voor dezelfde vergelijking die in de vorige sectie werd gebruikt. De waarde van de `title` parameter staat tussen accolades omdat deze een komma bevat, dus gebruiken we de groeperingshaakjes om verwarring met de andere parameters die aan de `\begin{axis}` declaratie worden meegegeven te voorkomen. Er zijn twee nieuwe commando's:

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

Dit verandert het aanzicht van de plot. De parameter wordt aan de as-omgeving doorgegeven, wat betekent dat dit in elk ander type 3D-plot gebruikt kan worden. De eerste waarde is een rotatie, in graden, rond de z-as; de tweede waarde roteert het aanzicht rond de x-as. In dit voorbeeld, wanneer we een rotatie van 0° rond de z-as combineren met een rotatie van 90° rond de x-as, krijgen we een bovenaanzicht van de plot.

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

Deze regel code doet twee dingen: ten eerste vertelt hij LaTeX om de externe software gnuplot te gebruiken om de contourlijnen te berekenen; dit werkt prima in Overleaf, maar als u dit commando in uw lokale LaTeX-installatie wilt gebruiken, moet u eerst gnuplot installeren (matlab werkt ook; schrijf in dat geval matlab in plaats van gnuplot in het commando). Ten tweede is de subparameter levels een lijst met waarden van hoogteniveaus waarop de contourlijnen moeten worden berekend.

### Een oppervlak plotten vanuit gegevens

Om een gegevensset als een 3D-oppervlak te plotten, hebben we alleen de coördinaten van elk punt nodig. Deze coördinaten kunnen een ongeordende set zijn of, in dit geval, een matrix:

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

[Open dit `pgfplots` 3D-oppervlakvoorbeeld in 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)

De uitvoer van deze code wordt getoond in de afbeelding hieronder — de documentpreambule van LaTeX wordt automatisch toegevoegd wanneer u de link opent:

![3dsurfacedata.png](/files/5b01ab2c362c2cb9ab51fcc1f9b1d03b0879d2a8)

#### Uitleg van de gegevens

De punten die aan de `coordinates` parameter worden behandeld alsof ze in een 3 × 3-matrix staan, waarbij een lege regel wordt gebruikt als scheiding tussen elke matrixrij.

Alle opties voor 3D-plots in dit artikel zijn ook van toepassing op gegevensoppervlakken.

### Parametrische plot

De syntaxis voor parametrische plots is iets anders. Laten we een voorbeeld bekijken:

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

[Open dit `pgfplots` voorbeeld van een parametrische plot in 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)

De uitvoer van deze code wordt getoond in de afbeelding hieronder — de documentpreambule van LaTeX wordt automatisch toegevoegd wanneer u de link opent:

![Parametricplot.png](/files/80e79d81e7955b01416b5cce185513167aae3b0f)

#### Uitleg van de code

Er zijn in dit voorbeeld slechts twee nieuwe dingen: ten eerste, de `samples y=0` om te voorkomen dat `pgfplots` dat de uiterste punten van de spiraal worden verbonden, en ten tweede de manier waarop de te plotten functie aan de `addplot3` omgeving wordt doorgegeven. Elke parameterfunctie wordt gegroepeerd tussen accolades en de drie parameters worden gescheiden door een haakje.

## Naslaggids

| Commando/Optie/Omgeving | Beschrijving                                                                                                                                                                  | Mogelijke waarden                                                                                                                                                                                                                                                                                               |
| ----------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **axis**                | Normale plots met lineaire schaling                                                                                                                                           |                                                                                                                                                                                                                                                                                                                 |
| **semilogxaxis**        | logaritmische schaling van x en normale schaling voor y                                                                                                                       |                                                                                                                                                                                                                                                                                                                 |
| **semilogyaxis**        | logaritmische schaling voor y en normale schaling voor x                                                                                                                      |                                                                                                                                                                                                                                                                                                                 |
| **loglogaxis**          | logaritmische schaling voor de x- en y-assen                                                                                                                                  |                                                                                                                                                                                                                                                                                                                 |
| **assenlijnen**         | verandert de manier waarop de assen worden getekend. Standaard is '*box*                                                                                                      | box, left, middle, center, right, none                                                                                                                                                                                                                                                                          |
| **legend pos**          | positie van het legenda-vak                                                                                                                                                   | south west, south east, north west, north east, outer north east                                                                                                                                                                                                                                                |
| **markering**           | type markeringen dat wordt gebruikt bij het plotten van gegevens. Wanneer een enkel teken wordt gebruikt, lijkt het uiterlijk van het teken sterk op de werkelijke markering. | \*, 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**            | kleurenschema dat in een plot wordt gebruikt; kan worden gepersonaliseerd, maar er zijn enkele vooraf gedefinieerde colormaps                                                 | hot, hot2, jet, blackwhite, bluered, cool, greenyellow, redyellow, violet.                                                                                                                                                                                                                                      |

## Verder lezen

Zie voor meer informatie:

* [Kleuren gebruiken in LaTeX](/latex/nl/opmaak/13-using-colors-in-latex.md)
* [TikZ-pakket](/latex/nl/afbeeldingen-en-tabellen/05-tikz-package.md)
* [pgfplots en tikzpictures extern maken](/latex/nl/vragen-en-antwoorden/60-i-have-a-lot-of-tikz-matlab2tikz-or-pgfplots-figures-so-i-m-getting-a-compilation-timeout.-can-i.md)
* [Afbeeldingen invoegen](/latex/nl/meer-onderwerpen/27-inserting-images.md)
* [Lijsten met tabellen en figuren](/latex/nl/afbeeldingen-en-tabellen/03-lists-of-tables-and-figures.md)
* [Afbeeldingen en tabellen positioneren](/latex/nl/afbeeldingen-en-tabellen/02-positioning-images-and-tables.md)
* [Diagrammen rechtstreeks in LaTeX tekenen](/latex/nl/afbeeldingen-en-tabellen/04-picture-environment.md)
* [De **pgfplots** pakkettendocumentatie](http://mirrors.ctan.org/graphics/pgf/contrib/pgfplots/doc/pgfplots.pdf).
* [De TikZ- en PGF-pakketten: handleiding voor versie 3.0.0](http://mirror.utexas.edu/ctan/graphics/pgf/base/doc/pgfmanual.pdf)
* [TikZ- en PGF-voorbeelden op 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/nl/vakspecifiek/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.
