pgfplots:在左侧和右侧排列不同轴的网格

pgfplots:在左侧和右侧排列不同轴的网格

我正在使用这个代码

\begin{document}
\def\xmin{5}
\def\xmax{6}
\def\domfactor{4}
\def\xmindom{\xmin/\domfactor}
\def\xmaxdom{\xmin*\domfactor}
{\color{fg}
\begin{tikzpicture}
\begin{axis}[
  title={20dB Coupler (5-6$\,\si{GHz}$)},
  xlabel={$f$ (GHz)},
  ylabel={$S$ ($\si{dB}$)},
  axis y line*=left,
  xmin=\xmin, xmax=\xmax,
  grid=major,
]
  \addplot [
    red,
  ] table[x=freq, y=s31] {data/openems_coupler.dat};
\end{axis}
\begin{axis}[
  ylabel={Directivity ($\si{dB}$)},
  axis y line*=right,
  axis x line=none,
  xmin=\xmin, xmax=\xmax,
]
  \addplot [
    orange,
  ] table[x=freq, y expr={\thisrow{s31}-\thisrow{s41}}] {data/openems_coupler.dat};
\end{axis}
\end{tikzpicture}
}
\end{document}

创建以下图表:

在此处输入图片描述

不过,这件事让我有点烦。我希望设置右轴,使刻度标记出现在与左刻度标记相同的垂直位置,这样网格就会应用于图的两侧。当然,我可以省略网格,但我喜欢把它放在那里。

是否pgfplots提供了一种方法来做到这一点,还是我必须手动尝试(通过设置 ymin 和 max 以及 tick 设置)?

相关内容