Erneutes Lesen einer Datendatei erzwingen

Erneutes Lesen einer Datendatei erzwingen

Ich habe eine Datendatei, aus der ich ungerade/gerade Zeilen separat auf derselben Achse darstellen möchte. Aber die tableOptionen scheinen nur einmal zu gelten, beim Einlesen der Daten, was nur einmal pro Achse geschieht (d. h. nach einem \nextgroupplotwerden die Daten anscheinend erneut oder in einer neuen gelesen tikzpicture).

\documentclass{article}
\usepackage{pgfplots}
\begin{filecontents}{data.dat}
1 1
2 4
3 3
4 8
\end{filecontents}
\begin{document}

\begin{tikzpicture}
    \begin{axis}
        \addplot[no markers] table[each nth point=2]{data.dat};
        \addplot[only marks] table[each nth point=2, skip first n=1]{data.dat};
    \end{axis}
\end{tikzpicture}

should be:

\begin{tikzpicture}
    \begin{axis}
        \addplot[no markers] table{
            1 1
            3 3
        };
        \addplot[only marks] table{
            2 4
            4 8
        };
    \end{axis}
\end{tikzpicture}
\end{document}

Gibt es eine Option, das erneute Lesen der Daten für jeden tableBefehl zu erzwingen?

Ergebnis

Antwort1

Ich glaube nicht, dass Sie skip first nden Schlüssel verwenden können, um die Koordinaten flexibel zu filtern, da es sich um einen pgfplotstableSchlüssel zum Lesen oder Setzen der Tabelle handelt. Stattdessen können Sie Filter verwenden, um die ungeraden/gerade nummerierten Zeilen zu eliminieren

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\begin{filecontents}{data.dat}
1 1
2 4
3 3
4 8
\end{filecontents}
\begin{document}


\begin{tikzpicture}
    \begin{axis}
        \addplot[no markers,each nth point=2] table {data.dat};

        \addplot[only marks,x filter/.code={
                    \ifodd\numexpr\coordindex+1\relax
                        \def\pgfmathresult{}
                    \fi}
                ] table {data.dat};
    \end{axis}
\end{tikzpicture}

\end{document}

Bildbeschreibung hier eingeben

Natürlich können Sie mit diesem Code Ihre eigenen Filter erstellen (indem Sie Mod(,)usw. verwenden), es ist also trotzdem machbar.

verwandte Informationen