Zum Inhalt springen

Logarithmische Achsen mit pgfplots

Ersetzen Sie axis durch semilogyaxis (log. y), semilogxaxis (log. x) oder loglogaxis (beide), oder setzen Sie ymode=log oder xmode=log an einer normalen axis.

Eine Log-Skala auf der y-Achse

Werte, die um Faktoren wachsen, etwa Anzahlen, Fehler oder Frequenzen, liest man am besten auf einer Log-Skala. semilogyaxis lässt x linear und macht y logarithmisch. Die Teilstriche liegen bei den Zehnerpotenzen und sind als $10^k$ beschriftet.

Exponentielles Wachstum auf einer logarithmischen y-Achse

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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}

Eine Gerade in diesem Plot bedeutet konstantes Wachstum um denselben Faktor pro Schritt.

Beide Achsen logarithmisch

loglogaxis macht beide Achsen logarithmisch. Ein Potenzgesetz wie $y = x^2$ wird zu einer Geraden, deren Steigung der Exponent ist.

Potenzgesetze in einem doppelt logarithmischen Plot

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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}
Gesetzt von Scissor LaTeX: Potenzgesetze in einem doppelt logarithmischen Plot

Dasselbe mit xmode und ymode

xmode=log und ymode=log geben einer normalen axis eine Log-Skala. Das ist praktisch, wenn ein Stil die Wahl trifft, oder in einem Gruppenplot.

xmode=log an einer normalen Achse

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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}
Gesetzt von Scissor LaTeX: xmode=log an einer normalen Achse

Formeln funktionieren auch auf Log-Achsen, aber domain und samples sind in Dateneinheiten angegeben: Die Stützstellen werden gleichmäßig zwischen den beiden Enden verteilt, auf einer Log-Achse landen also fast alle in der letzten Dekade. Das Beispiel plottet deshalb eine Parameterkurve im Exponenten t, von $10^1$ bis $10^5$, was die Stützstellen gleichmäßig entlang der Log-Achse verteilt. pgfplots verhält sich genauso.

Eine andere Basis

log basis y=2 (oder log basis x) ändert die Basis. Die Teilstriche liegen dann bei den Zweierpotenzen und sind als $2^k$ beschriftet.

Basis 2 auf der y-Achse

LaTeXPräambel: \usepackage{pgfplots}Im Editor öffnen (öffnet in einem neuen Tab)
\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}

Optionen auf Log-Achsen

OptionIn Scissor LaTeXHinweise
semilogxaxis, semilogyaxis, loglogaxisFunktioniert
xmode=log, ymode=logFunktioniert
log basis x=b, log basis y=bFunktioniert
ymin, ymax auf einer Log-AchseFunktioniertGeben Sie positive Werte an.
log ticks with fixed pointNicht unterstütztWird mit einer Meldung ignoriert; die Beschriftungen bleiben Potenzen.
ybar stacked auf einer Log-AchseNicht unterstütztDie Balken werden übereinander gezeichnet statt gestapelt, ohne Meldung.
Werte von 0 oder darunterVerworfenPunkte, die sich auf einer Log-Skala nicht darstellen lassen, werden mit einer Meldung weggelassen.

Was anders ist als in einer TeX-Installation

Siehe Balkendiagramme für Balken auf linearen Achsen und das Handbuch von pgfplots für jede Option: ctan.org/pkg/pgfplots.

Siehe auch Linienplots, Gruppenplots und Konturen und Heatmaps.

Fragen und Antworten

Wie mache ich die y-Achse in pgfplots logarithmisch?

Verwenden Sie \begin{semilogyaxis} ... \end{semilogyaxis} statt axis, oder fügen Sie den Achsenoptionen ymode=log hinzu.

Warum zeigt mein Log-Plot keine Daten?

Eine Log-Achse kann keine Null und keine negativen Werte darstellen. Punkte mit solchen Werten werden verworfen, und der Tab „Probleme“ sagt das. Verschieben Sie die Daten oder verwenden Sie eine lineare Achse.

Kann ich Basis 2 oder Basis e verwenden?

Ja, mit log basis y=2 (oder einer beliebigen positiven Zahl, zum Beispiel log basis x=2.71828).

Jedes Beispiel auf dieser Seite wird beim Erstellen der Website von Scissor LaTeX gesetzt. Zuletzt aktualisiert am 2026-11-07.