Naar de inhoud

Contouren, heatmaps en kleurenkaarten

Gebruik \addplot3 in een as met view={0}{90}: surf of matrix plot voor een heatmap, contour filled voor gevulde contouren, en voeg colorbar en een colormap toe voor de schaal.

Een heatmap van een functie

\addplot3 plot een functie van x en y. Van bovenaf bekeken (view={0}{90}) wordt een surf-grafiek een heatmap: elke cel krijgt via de kleurenkaart een kleur naar zijn waarde. shader=interp laat de kleuren vloeiend in elkaar overlopen; shader=flat geeft één kleur per cel.

Een vloeiende heatmap met een kleurenbalk

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{axis}[view={0}{90}, colorbar, colormap/viridis,
               xlabel=$x$, ylabel=$y$, enlargelimits=false]
    \addplot3[surf, shader=interp, domain=-2:2, y domain=-2:2, samples=30]
      {exp(-x^2 - y^2) * (1 + x)};
  \end{axis}
\end{tikzpicture}
Gezet door Scissor LaTeX: Een vloeiende heatmap met een kleurenbalk

domain bepaalt het bereik van x, y domain het bereik van y, en samples de grootte van het raster (standaard 25, samples y voor een ander aantal in y).

Gevulde contouren

contour filled verdeelt de waarden in banden. number= bepaalt hoeveel contourniveaus er zijn; met levels={...} noem je ze zelf.

Gevulde contouren van een functie met twee pieken

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{axis}[view={0}{90}, colorbar, colormap/hot, enlargelimits=false]
    \addplot3[contour filled={number=8}, domain=-3:3, y domain=-3:3, samples=40]
      {exp(-(x-1)^2 - y^2) + 0.7*exp(-(x+1.2)^2 - (y-1)^2)};
  \end{axis}
\end{tikzpicture}
Gezet door Scissor LaTeX: Gevulde contouren van een functie met twee pieken

Heatmap uit een tabel: matrix plot

Voor gemeten data op een raster tekent matrix plot* één cel per rij van een tabel. mesh/cols zegt hoeveel kolommen het raster heeft, en point meta=explicit met meta= noemt de kolom met waarden.

Een raster van 3 bij 3 waarden

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{axis}[colorbar, colormap/bluered, enlargelimits=false,
               xtick=data, ytick=data, width=6.5cm, height=6cm]
    \addplot[matrix plot*, mesh/cols=3, point meta=explicit]
      table[meta=v] {
        x y v
        0 0 1
        1 0 4
        2 0 2
        0 1 3
        1 1 9
        2 1 5
        0 2 2
        1 2 6
        2 2 44
      };
  \end{axis}
\end{tikzpicture}

Contourlijnen

Voor lijnen zonder vulling moeten de contourniveaus voor je berekend worden. In pgfplots is dat contour gnuplot of contour lua, die in een TeX-installatie extra programma's of LuaLaTeX nodig hebben. Scissor LaTeX berekent de lijnen zelf en tekent ze, en herinnert je er in het tabblad Problemen aan dat de code elders misschien niet compileert.

Contourlijnen met contour gnuplot

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{axis}[view={0}{90}, xlabel=$x$, ylabel=$y$]
    \addplot3[contour gnuplot={levels={0.2, 0.5, 0.8}},
              domain=-2:2, y domain=-2:2, samples=30]
      {exp(-x^2 - y^2)};
  \end{axis}
\end{tikzpicture}

Tabblad Problemen: contour gnuplot needs gnuplot and shell escape in LaTeX; contour filled or contour prepared compile everywhere

Gebruik voor een bestand dat overal compileert contour filled, of contour prepared met vooraf berekende contourdata.

Kleurenkaarten en kleurenbalken

OptieWat het doetIn Scissor LaTeX
colormap/viridis, /hot, /cool, /jet, /blackwhite, /blueredingebouwde kleurenkaartenWerkt
colormap name=viridiseen kaart op naam kiezenWerkt
colormap={name}{rgb255=(..) rgb255=(..)}je eigen kaartWerkt
colorbar, colorbar horizontaleen schaal naast of onder de grafiekWerkt
colorbar style={..}maatstreepjes en labels van de kleurenbalkWerkt
point meta min, point meta maxhet kleurbereik vastleggenWerkt
shader=flat, shader=interp, shader=facetedhoe cellen gekleurd wordenWerkt

Een eigen kleurenkaart en een horizontale kleurenbalk

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{axis}[view={0}{90}, enlargelimits=false,
               colormap={sea}{rgb255=(255,255,255) rgb255=(120,180,220) rgb255=(10,40,100)},
               colorbar horizontal, width=7cm, height=6cm]
    \addplot3[surf, shader=flat, domain=0:2, y domain=0:2, samples=12] {x*y};
  \end{axis}
\end{tikzpicture}
Gezet door Scissor LaTeX: Een eigen kleurenkaart en een horizontale kleurenbalk

3D-weergaven

Scissor LaTeX tekent \addplot3 alleen recht van bovenaf gezien. Elke andere view, ook de standaard 3D-weergave, laat de as leeg en toont een melding.

Een 3D-weergave wordt niet getekend

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{axis}[width=6cm, height=5cm]
    \addplot3[surf, domain=-2:2, y domain=-2:2] {x^2 - y^2};
  \end{axis}
\end{tikzpicture}

Tabblad Problemen: 3D plots are drawn only when seen from above (view={0}{90}) for now

Wat anders is dan in een TeX-installatie

De handleiding van pgfplots behandelt \addplot3, kleurenkaarten en contouren uitgebreid: ctan.org/pkg/pgfplots.

Zie ook de basis van pgfplots, Logaritmische assen en pgfplots.

Vragen en antwoorden

Hoe maak ik een heatmap in LaTeX?

Gebruik \addplot3[surf, shader=interp] {f(x,y)}; (of matrix plot* voor tabeldata) in een as met view={0}{90}, en voeg colorbar toe.

Tekent Scissor LaTeX 3D-oppervlaktegrafieken?

Nog niet. \addplot3 wordt alleen getekend als hij van bovenaf wordt bekeken (view={0}{90}); andere weergaven laten de as leeg en het tabblad Problemen meldt dat.

Waarom geeft contour gnuplot een waarschuwing?

In een TeX-installatie heeft het gnuplot en shell escape nodig. Scissor LaTeX tekent de contouren toch, maar waarschuwt dat de code elders misschien niet compileert. contour filled compileert overal.

Elk voorbeeld op deze pagina wordt door Scissor LaTeX gezet wanneer de site wordt gebouwd. Laatst bijgewerkt op 2026-11-07.