y 轴上带有整数的对数刻度

y 轴上带有整数的对数刻度

我正在写一份报告,我的 Bode 图的要求之一是它们是对数的,但我需要 y 轴上的整数(即 10、20 和 30)。

我尝试使用 ytick={} 但这些数字没有出现在图表中。

我的部分代码:

\begin{tikzpicture}
\begin{loglogaxis}[
    xlabel=frequentie $f (\hertz)$,
    ylabel=weerstand $R (\ohm)$,
    grid=both, 
    minor grid style={gray!25}, 
    major grid style={gray!25},
    ytick={10,15,20,25,30}]
\addplot table[x=f,y=R,col sep=semicolon]{MeetresultatenOpdracht12a.csv};
\end{loglogaxis}
\end{tikzpicture}

谢谢!

答案1

这是 Bode 图的样式示例,尽管 y 轴单位为欧姆。在标签计算中,\tick已经根据我们设置的底数保存了对数值。因此,如果您只是使用该选项进行漂亮打印,fixed就会得到所需的值。否则,使用指数函数,您可以将其转换为原始值。

\documentclass{standalone}
\usepackage{pgfplots,siunitx}
\pgfplotsset{compat=1.9}
\usepgfplotslibrary{units}

\begin{document}

\begin{tikzpicture}
\begin{loglogaxis}[
  enlargelimits=false,
  grid=both,
  ymin=5e-6,ymax=2,
  xlabel= Frequency,
  ylabel= R,
  x unit=\si{\hertz},
  y unit=\si{\ohm},
  log basis y=10,
  log basis x=10,
  %dB definition taken as 20 log10(x)
  yticklabel={\pgfmathparse{20*(\tick)}\pgfmathprintnumber[fixed]{\pgfmathresult}},
  domain=1e-7:1e1,samples=250
]
\addplot+[no marks,thick]{exp(-5*x)};
\end{loglogaxis}
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

相关内容