pgfplots:如何使次级 y 轴刻度标签成为主 y 轴标签的功能?

pgfplots:如何使次级 y 轴刻度标签成为主 y 轴标签的功能?

在这里,我想添加辅助 y 轴刻度标签并使其发挥主 y 轴刻度标签的功能,而不是手动指定它们。

例如,我需要二级标签来遵循这个伪函数:

secondary y tick label = primary y tick label * 100

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}

\begin{axis}[
xmin=0,xmax=10,
xtick={0,2,...,10},
xticklabels={
    ,
    x1,
    x2,
    x3,
    x4,
    }
]
\addplot+[
only marks,
error bars/.cd,
y dir=both,
y explicit,
]
table
[
y error plus=ey+,
y error minus=ey-,
]{  
    x       y       ey+     ey-
    2       0       .5      1
    4       0       0       0.5
    6       0       1       0
    8       0       0.5     0.5
};

\end{axis} 
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案1

如果您希望图表中有第二个 y 轴,您可以在仅有 y 轴的现有轴上方添加另一个轴。因此,第一个轴将具有 x 和 y1,第二个轴仅具有 y2。更多信息请参阅 pgfplots 手册第 4.9 章。

请注意,很可能有更好的方法来实现这一点,这是我想到的第一个方法。

编辑:

至于将第二个轴标签作为第一个轴的数学函数:如何使用两个变量varymax和varymin?然后您可以将它们的值指定为函数,因此您无需手动执行此操作。

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}

\begin{document}
\begin{tikzpicture}

\newcommand{\varymin}{-1.2} 
\newcommand{\varymax}{1.2}

\begin{axis}[
xmin=0,xmax=10,
ymin=\varymin,ymax=\varymax,
xtick={0,2,...,10},
xticklabels={
    ,
    x1,
    x2,
    x3,
    x4,
    }
]
\addplot+[
only marks,
error bars/.cd,
y dir=both,
y explicit,
]
table
[
y error plus=ey+,
y error minus=ey-,
]{  
    x       y       ey+     ey-
    2       0       .5      1
    4       0       0       0.5
    6       0       1       0
    8       0       0.5     0.5
};

\end{axis} 
\begin{axis}[
xmin=0,xmax=10,
ymin=\varymin*100,ymax=\varymax*100,
axis y line*=right,
axis x line=none,
ylabel=Second label]
\end{axis}
\end{tikzpicture}

\end{document}

结果如下:

结果

相关内容