Hier möchte ich die Beschriftungen für die sekundären Teilstriche der Y-Achse hinzufügen und sie als Funktion der Beschriftungen für die primären Teilstriche der Y-Achse verwenden, anstatt sie manuell anzugeben.
Beispielsweise brauche ich sekundäre Beschriftungen, die dieser Pseudofunktion folgen:
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}
Antwort1
Wenn Sie eine zweite Y-Achse in Ihrem Diagramm haben möchten, können Sie eine weitere Achse über der vorhandenen Achse mit nur Y-Achse hinzufügen. Daher enthält die erste Achse x und y1 und die zweite nur y2. Weitere Informationen finden Sie in Kapitel 4.9 im pgfplots-Handbuch.
Bitte beachten Sie, dass es höchstwahrscheinlich bessere Möglichkeiten gibt, dies zu erreichen. Dies ist die erste, die mir eingefallen ist.
Bearbeiten:
Was die Beschriftung der zweiten Achse als mathematische Funktion der ersten Achse betrifft: Wie wäre es, wenn Sie zwei Variablen verwenden, nämlich „variemax“ und „variemin“. Dann können Sie deren Wert als Funktion angeben und müssen dies nicht manuell tun.
\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}
Hier ist das Ergebnis: