pgfplots: Zweite Problem mit Schleife, Definiton für zweite y-Achse
Ich habe hier eine Tabelle
x y1 y2 Info
1 4 9 A
2 5 8 B
3 3 7 C
deren spalte `y1` und möchte einen Graphen zeichnen, bei dem links und rechts die y-Achse des folgenden Plots angibt,
Achsen y1 und y2 auftauchen, d.h.
[![alt text][1]][2]
Dazu lese ich mittels <code>\pgfplotstablegetelem{<row>}{<column>}\of{<code><</code>table>}\pgfplotsretval</code> aus der Tabelle
und möchte mit einer Schleife die Werte als nodes platzieren.
% Zweite y-Achse
% Maximalen x-Wert für node-Platzierung auslesen
\def\xMax{\pgfkeysvalueof{/pgfplots/xmax}}
%
\pgfplotsinvokeforeach{0,1,...,2}{%%
% Koordinaten lesen
\ZelleLesen{#1}{y1}
\def\yKoordinate{\pgfplotsretval} % <---- Problem hier!!!
% Koordinaten setzen
\node[red, anchor=west, xshift=0.125pt] at (axis cs: \xMax,\yKoordinate) {\Zelle{#1}{y2}};
}%%
Dabei geht aber etwas schief: Alles Werte werden an die selbe Stelle gesetzt. Scheints ändert sich die `\def\yKoordinate` nicht.
[![alt text][3]][4]
Was muss ich da anders machen?
___
PS: Ich hatte das auch [hier][5] gefragt, aber ich glaube, das ist schon ein sehr LaTeX-spezifisches Problem
PPS: Ein ähnliches Problem gab es schonmal hier [
Wie bekomme kann ich in pgfplots den Parameter an eine Parameterfunktion-Kurvenschar schreiben?
][6] aber die Spalte `y2` als zweite y-Achse rechts an das Koordinatengitter, also etwa
[![alt text][3]][3]
`PS: Eigentlich möchte ich an der zweiten, rechten y-Achse sogar Rechenausdrücke (prozentuale Änderungen) haben. Daher ist das Überzeichnen mit einem 2. Koordinatensystem evtl. ungünstig. Aber ich dachte, ich halte die Frage erstmal einfach. Evtl. bekomme ich den Rest dann selbst hin.`
**MWE:**
Lösung dort funktioniert gleich mal wieder nicht.
___
%\documentclass[]{article}
\documentclass[border=5mm]{standalone}
\documentclass[border=5mm, varwidth]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{filecontents}{datatable.dat}
x y1 y2 Info
1 4 9 A
2 5 8 B
3 3 7 C
\end{filecontents}
\begin{document}
% Tabellen-Element auslesen
%\pgfplotstablegetelem{<row>}{<column>}\of{<table>}\pgfplotsretval
\newcommand\ZelleLesen[2]{\pgfplotstablegetelem{#1}{#2}\of{datatable.dat}}
\newcommand\Zelle[2]{\ZelleLesen{#1}{#2}\pgfplotsretval}
Test: \Zelle{0}{y2} \\
\begin{tikzpicture}
\begin{axis}[
clip=false,
%y = 1cm,
visualization depends on={value \thisrowno{3} \as \Name},
nodes near coords={\Name},
xtick = data,
ytick=data,
]
\addplot [only marks, mark=*]
table[] {
x y1 y2 Info
1 4 9 A
2 5 8 B
3 3 7 C
};
\end{axis}
{datatable.dat};
%
% Zweite y-Achse
% Maximalen x-Wert für node-Platzierung auslesen
\def\xMax{\pgfkeysvalueof{/pgfplots/xmax}}
%
\pgfplotstablegetrowsof{datatable.dat}
\pgfmathsetmacro{\Zeilenzahl}{\pgfplotsretval-1}
\pgfplotsinvokeforeach{0,...,\Zeilenzahl}{%%
% Koordinaten lesen
\ZelleLesen{#1}{y1}
\def\yKoordinate{\pgfplotsretval} % <---- Problem hier!!!
% Koordinaten setzen
\node[red, anchor=west, xshift=0.125pt] at (axis cs: \xMax,\yKoordinate) {\Zelle{#1}{y2}};
}%%
\end{axis}
\end{tikzpicture}
\end{document}
[1]: http://texwelt.de/wissen/upfiles/999999999999999_2.jpg
http://texwelt.de/wissen/upfiles/55555555_115.png
[2]: http://texwelt.de/wissen/upfiles/999999999999999_2.jpg
http://texwelt.de/wissen/upfiles/55555555_115.png
[3]: http://texwelt.de/wissen/upfiles/55555555_113.pnghttp://texwelt.de/wissen/upfiles/55555555_116.png
[4]: http://texwelt.de/wissen/upfiles/55555555_116.png
[5]: http://matheplanet.de/matheplanet/nuke/html/viewtopic.php?topic=234199&start=0&lps=1704908#v1704908
[6]: http://texwelt.de/wissen/fragen/17634/wie-kann-ich-in-pgfplots-den-parameter-an-eine-parameterfunktion-kurvenschar-schreiben