pgfplots: ¿Cómo hacer que las etiquetas de marcas secundarias del eje y funcionen con las etiquetas primarias del eje y?

pgfplots: ¿Cómo hacer que las etiquetas de marcas secundarias del eje y funcionen con las etiquetas primarias del eje y?

Aquí, me gustaría agregar las etiquetas de marcas secundarias del eje y y hacer que funcionen con las etiquetas de marcas principales del eje y en lugar de especificarlas manualmente.

Por ejemplo, necesito etiquetas secundarias para seguir esta pseudofunción:

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}

ingrese la descripción de la imagen aquí

Respuesta1

Si desea un segundo eje y en su gráfico, puede agregar otro eje encima del existente con solo el eje y. Por lo tanto, el primero tendrá x e y1 y el segundo solo y2. Puede encontrar más información en el capítulo 4.9 del manual de pgfplots.

Tenga en cuenta que lo más probable es que haya mejores formas de lograrlo; esta es la primera en la que pensé.

Editar:

En cuanto a tener etiquetas del segundo eje como función matemática del primero: ¿Qué tal si usamos dos variables variamax y variamin? Luego puede especificar su valor como una función, por lo que no necesitará hacerlo manualmente.

\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}

Aquí está el resultado:

resultado

información relacionada