Ich versuche, ein Diagramm mit einer doppelt logarithmischen Y-Achse zu erstellen. Ist das möglich? Dadurch sollte sich der Abstand jedes logarithmischen Inkrements ändern, da ich sogenannte Bitfehlerraten darstellen möchte. Um eine gerade Linie der gemessenen Daten zu erhalten, ist diese Art der Skalierung erforderlich (y = log(log(x)). Es ist bekannt, dass in einem normalen Log-Diagramm der Abstand zwischen jedem Inkrement gleich ist ... Leider konnte ich im pgfplots-Handbuch keine Lösung finden. Die einzige dort angegebene Option ist ein einzelner Logarithmus für eine oder beide Achsen. Ein Beispielbild finden Sie unter dem folgenden Link. So sollte es aussehen.
Antwort1
Wie Christian Feuersänger sagte, können Sie y coord trafo
die Koordinaten im Handumdrehen mit transformieren. Die Beschriftungen der Teilstriche würden normalerweise mit erneut transformiert y coord inv trafo
, aber die Genauigkeit der Mathematik-Engine ist hierfür nicht hoch genug (aus 1000 wird 997,8), sodass Sie die Beschriftungen explizit angeben müssen:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
y coord trafo/.code=\pgfmathparse{log10(log10(#1))},
domain=0:2,
ymax=10000,
ytick={10,100,1000,10000},
yticklabels={10,100,1000,10000},
extra y ticks={2,...,9,20,30,...,90,200,300,...,900,2000,3000,...,9000},
extra y tick labels={},
every extra y tick/.style={major tick length=3pt}
]
\addplot {exp(exp(x))};
\end{axis}
\end{tikzpicture}
\end{document}