Forzar la relectura de un archivo de datos

Forzar la relectura de un archivo de datos

Tengo un archivo de datos desde el cual quiero trazar filas pares/impares por separado, en el mismo eje. Pero las tableopciones parecen aplicarse solo una vez, al leer los datos, lo que solo ocurre una vez por eje (es decir, después de que \nextgroupplotlos datos parecen leerse nuevamente o en un nuevo 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}

¿Existe una opción para forzar la relectura de los datos de cada tablecomando?

resultado

Respuesta1

No creo que puedas usar skip first nla clave para filtrar las coordenadas de manera flexible, ya que es una pgfplotstableclave para leer la tabla o componerla. En su lugar, puede utilizar filtros para eliminar las filas pares o impares.

\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}

ingrese la descripción de la imagen aquí

Por supuesto, con este código puedes crear tus propios filtros (usando, Mod(,)etc.), por lo que de todos modos es factible.

información relacionada