Я пытаюсь построить график с двойной логарифмической осью Y. Возможно ли это? Это должно изменить расстояние каждого логарифмического приращения, поскольку я хочу построить так называемые коэффициенты битовых ошибок. Чтобы получить прямую линию измеренных данных, необходим этот тип масштабирования (y=log(log(x)). Известно, что на обычном логарифмическом графике расстояние между каждым приращением одинаково... К сожалению, я не смог найти решение в pgfplots-manual. Единственный вариант, который там указан, — это одинарный логарифм для одной или обеих осей. Пример на рисунке приведен по ссылке ниже. Вот как это должно выглядеть.
решение1
Как сказал Кристиан Фейерзенгер, вы можете использовать a y coord trafo
для преобразования координат на лету. Метки делений обычно преобразуются повторно с помощью y coord inv trafo
, но точность математического движка недостаточно высока для этого (1000 становится 997,8), поэтому вам придется явно указать метки:
\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}