控制 pgf/tikz 半对数因子

控制 pgf/tikz 半对数因子

我目前正在使用该semilogy环境,并想知道如何控制它们是否实际占用10 log或占用20 log

答案1

在这种情况下,您依赖的方法y filter是正确的。但是,它对不同的值进行操作,具体取决于您使用的是对数轴还是线性轴:对数轴提供值的对数作为输入y filter。由于您明确需要对数基数 10,因此您需要log basis y=10为对数轴指定(否则您将拥有对数基数 e)。

采用对数滤波器的线性轴与将值乘以 20 的对数轴之间的区别仅在于轴的描述。

\documentclass{standalone}

\usepackage{pgfplots}

\pgfplotsset{compat=1.9}

\begin{document}

\begin{tikzpicture}
    \begin{axis}
    \addplot+[
        y filter/.code={\pgfmathparse{20*log10(\pgfmathresult)}},
    ]
    {10^x};
    \end{axis}
\end{tikzpicture}

\begin{tikzpicture}
    \begin{semilogyaxis}[
        log basis y=10,
        ytickten={-100,-50,...,100},
    ]
    \addplot+[
        y filter/.code={\pgfmathparse{20*\pgfmathresult}},
    ]
    {10^x};
    \end{semilogyaxis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

我自己针对正常环境的解决方案axis

every axis plot/.style={ y filter/.code={\pgfmathparse{20*log10(\pgfmathresult)}\pgfmathresult} },

相关内容