Aqui, eu gostaria de adicionar os rótulos de ticks do eixo y secundários e fazê-los funcionar como rótulos de ticks do eixo y primários, em vez de especificá-los manualmente.
Por exemplo, preciso de rótulos secundários para seguir esta pseudofunção:
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}
Responder1
Se você quiser um segundo eixo y em seu gráfico, poderá adicionar outro eixo em cima do existente com apenas o eixo y. Portanto, o primeiro terá x e y1 e o segundo apenas y2. Mais informações podem ser encontradas no capítulo 4.9 do manual pgfplots.
Observe que provavelmente existem maneiras melhores de conseguir isso; esta é a primeira em que pensei.
Editar:
Quanto a ter rótulos do segundo eixo como uma função matemática do primeiro: Que tal usar duas variáveis rangemax e rangemin? Então você pode especificar seu valor como uma função, portanto não precisaria fazer isso 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}
Aqui está o resultado: