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
\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
\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}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
\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}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
\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
| Option | In Scissor LaTeX | Hinweise |
|---|---|---|
semilogxaxis, semilogyaxis, loglogaxis | Funktioniert | |
xmode=log, ymode=log | Funktioniert | |
log basis x=b, log basis y=b | Funktioniert | |
ymin, ymax auf einer Log-Achse | Funktioniert | Geben Sie positive Werte an. |
log ticks with fixed point | Nicht unterstützt | Wird mit einer Meldung ignoriert; die Beschriftungen bleiben Potenzen. |
ybar stacked auf einer Log-Achse | Nicht unterstützt | Die Balken werden übereinander gezeichnet statt gestapelt, ohne Meldung. |
| Werte von 0 oder darunter | Verworfen | Punkte, 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.