Здесь я хотел бы добавить метки делений вторичной оси 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. Дополнительную информацию можно найти в главе 4.9 руководства pgfplots.
Обратите внимание, что, скорее всего, существуют и лучшие способы добиться этого, это первое, что пришло мне в голову.
Редактировать:
Что касается меток второй оси как математической функции первой: как насчет использования двух переменных variationmax и variationmin? Тогда вы можете указать их значение как функцию, поэтому вам не придется делать это вручную.
\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}
Вот результат: