Naar de inhoud

Logaritmische assen met pgfplots

Vervang axis door semilogyaxis (log y), semilogxaxis (log x) of loglogaxis (beide), of zet ymode=log of xmode=log op een gewone axis.

Een logschaal op de y-as

Waarden die met factoren groeien, zoals aantallen, fouten of frequenties, lees je het best op een logschaal. semilogyaxis houdt x lineair en maakt y logaritmisch. De maatstreepjes staan bij de machten van tien en krijgen het label $10^k$.

Exponentiële groei op een logaritmische y-as

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{semilogyaxis}[xlabel={Day}, ylabel={Cells}, grid=major]
    \addplot coordinates {(0,44) (1,120) (2,350) (3,980) (4,2700) (5,7600) (6,21000)};
  \end{semilogyaxis}
\end{tikzpicture}

Een rechte lijn in deze grafiek betekent een constante groei met dezelfde factor per stap.

Beide assen logaritmisch

loglogaxis maakt beide assen logaritmisch. Een machtswet als $y = x^2$ wordt een rechte lijn met de exponent als helling.

Machtswetten in een log-loggrafiek

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{loglogaxis}[xlabel=$n$, ylabel={Time (s)}, legend pos=north west]
    \addplot coordinates {(10,0.001) (100,0.01) (1000,0.1) (10000,1)};
    \addplot coordinates {(10,0.0001) (100,0.01) (1000,1) (10000,100)};
    \legend{$O(n)$, $O(n^2)$}
  \end{loglogaxis}
\end{tikzpicture}
Gezet door Scissor LaTeX: Machtswetten in een log-loggrafiek

Hetzelfde met xmode en ymode

xmode=log en ymode=log geven een gewone axis een logschaal. Dat is handig als de keuze in een stijl wordt gemaakt, of in een groepsgrafiek.

xmode=log op een gewone as

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{axis}[xmode=log, xlabel={Frequency (Hz)}, ylabel={Gain (dB)}, ymin=-30, ymax=5]
    \addplot[blue, thick, domain=1:5, samples=60, variable=t]
      ({10^t}, {-10*log10(1 + (10^t/1000)^2)});
  \end{axis}
\end{tikzpicture}
Gezet door Scissor LaTeX: xmode=log op een gewone as

Formules werken ook op logaritmische assen, maar domain en samples zijn in data-eenheden: de punten worden gelijkmatig tussen de twee uiteinden verdeeld, dus op een logaritmische as komen ze bijna allemaal in de laatste decade terecht. Het voorbeeld plot daarom een parametrische curve in de exponent t, van $10^1$ tot $10^5$, waardoor de punten gelijkmatig over de logaritmische as verdeeld worden. pgfplots gedraagt zich net zo.

Een ander grondtal

log basis y=2 (of log basis x) verandert het grondtal. De maatstreepjes staan dan bij de machten van 2 en krijgen het label $2^k$.

Grondtal 2 op de y-as

LaTeXPreambule: \usepackage{pgfplots}Openen in de editor (opent in een nieuw tabblad)
\begin{tikzpicture}
  \begin{semilogyaxis}[log basis y=2, xlabel={Doublings}, ymin=1, ymax=64]
    \addplot coordinates {(0,1) (1,2) (2,4) (3,8) (4,16) (5,32)};
  \end{semilogyaxis}
\end{tikzpicture}

Opties op logaritmische assen

OptieIn Scissor LaTeXOpmerkingen
semilogxaxis, semilogyaxis, loglogaxisWerkt
xmode=log, ymode=logWerkt
log basis x=b, log basis y=bWerkt
ymin, ymax op een logaritmische asWerktGeef positieve waarden.
log ticks with fixed pointNiet ondersteundGenegeerd met een melding; labels blijven machten.
ybar stacked op een logaritmische asNiet ondersteundDe staven worden over elkaar heen getekend, niet gestapeld, en er verschijnt geen melding.
waarden van 0 of lagerWeggelatenPunten die niet op een logschaal kunnen staan, worden weggelaten, met één melding.

Wat anders is dan in een TeX-installatie

Zie staafdiagrammen voor staven op lineaire assen en de handleiding van pgfplots voor elke optie: ctan.org/pkg/pgfplots.

Zie ook Lijngrafieken, Groepsgrafieken en Contouren en heatmaps.

Vragen en antwoorden

Hoe maak ik de y-as logaritmisch in pgfplots?

Gebruik \begin{semilogyaxis} ... \end{semilogyaxis} in plaats van axis, of voeg ymode=log toe aan de opties van de as.

Waarom toont mijn loggrafiek geen data?

Een logaritmische as kan geen nul of negatieve waarden tonen. Punten met zulke waarden worden weggelaten, en het tabblad Problemen meldt dat. Verschuif de data of gebruik een lineaire as.

Kan ik grondtal 2 of grondtal e gebruiken?

Ja, met log basis y=2 (of elk positief getal, bijvoorbeeld log basis x=2.71828).

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