Importieren ausgewählter Zeilen eines Datensatzes (ohne Kopfzeile)

Importieren ausgewählter Zeilen eines Datensatzes (ohne Kopfzeile)

Importieren ausgewählter Zeilen eines Datensatzes (ohne Kopfzeile)

Beim Import sollten die Spaltennummern und nicht die Zeilenüberschriften verwendet werden. Im Handbuch von pgfplots wird die Möglichkeit beschrieben, den Befehl zu verwenden, \thisrowno{}der eine Zahl in $\mathbbm{N}_0$ annimmt.

Ähnliches MWE, das gut funktioniert

Das folgende Beispiel funktioniert (ohne Fehlermeldung), ist aber nicht das, was beabsichtigt ist:

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{filecontents}
\begin{filecontents*}{data.dat}
aasd dasdf basdf casdf
1 4 5 1
2 3 1 5
3 5 6 1
4 1 4 9
\end{filecontents*}

\begin{document}
\begin{tikzpicture}
\begin{axis}[%
    xlabel={xlabel},
    ylabel={ylabel}]
\addplot[color=blue,mark=none] 
    table [x=aasd, y=casdf, col sep=space] {data.dat};
\addplot[color=red, mark=none] 
    table [x=aasd, y=basdf, col sep=space] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

Antwort1

Der Unterschied zum MWE in der Frage ist, dass \thisrow{}oder \thisrowno{}ein anderes Argument in den Optionen der Tabelle benötigt wird, nämlich statt

\addplot[mark=none] 
    table [x=aasd, y=casdf, col sep=space] {data.dat};

der folgende Befehl zeigt das identische Ergebnis

\addplot[mark=none] 
    table [x expr=\thisrow{aasd}, y expr=\thisrow{casdf}, col sep=space] {data.dat};

oder mit Zeilennummern (ohne Kopfzeile):

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usepackage{filecontents}
\begin{filecontents*}{data.dat}
1 4 5 1
2 3 1 5
3 5 6 1
4 1 4 9
\end{filecontents*}

\begin{document}
\begin{tikzpicture}
\begin{axis}[%
    xlabel={xlabel},
    ylabel={ylabel}]
\addplot[color=blue,mark=none] 
    table [x expr=\thisrowno{0}, y expr=\thisrowno{3}, col sep=space] {data.dat};
\addplot[color=blue,mark=none] 
    table [x expr=\thisrowno{0}, y expr=\thisrowno{2}, col sep=space] {data.dat};
\end{axis}
\end{tikzpicture}
\end{document}

verwandte Informationen