pgfplots: Wie kann man die Beschriftungen der sekundären Teilstriche auf der Y-Achse zu einer Funktion der Beschriftungen der primären Y-Achse machen?

pgfplots: Wie kann man die Beschriftungen der sekundären Teilstriche auf der Y-Achse zu einer Funktion der Beschriftungen der primären Y-Achse machen?

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}

Bildbeschreibung hier eingeben

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:

Ergebnis

verwandte Informationen