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