pgfplots formateo de archivos externos

pgfplots formateo de archivos externos

¿Alguno de ustedes conoce el formato estándar para pgfplotsgráficos tomados de archivos externos (y también el tipo de archivo aceptado, por ejemplo txt, dat) y qué debe incluirse \addplotpara que los datos se tomen de ese archivo exacto?

Gracias por cualquier ayuda.

Respuesta1

  • Creo que los archivos de texto sin formato son lo único compatible, pero la extensión del archivo es la que quieras, .txt, .dat, .csv, .montypythonlo que sea.

  • El formato estándar son columnas delimitadas por espacios en blanco, en el sentido de que el delimitador de columna esperado predeterminado son espacios en blanco ("al menos una pestaña o espacio", para citar el manual). Sin embargo, puede especificar un separador diferente con la col sepclave, que puede tener estas opciones diferentes:

    col sep=space|tab|comma|colon|semicolon|braces|&|ampersand
    

    Entonces, si tienes un archivo de texto con el aspecto

    x y
    1 1
    2 3
    

    entonces puedes hacer

    \addplot table {<filename including extension>};
    

    y obtienes una gráfica de y vs. x. pgfplotsSi no se le indica lo contrario, utilizará la primera columna para los valores de x y la segunda para los valores de y.

    Si tiene un archivo separado por comas, es decir

    x,y
    1,1
    2,3
    

    entonces necesitas decir

    \addplot table[col sep=comma] {<filename including extension>};
    
  • Si tiene más de dos columnas, seleccione las columnas que desee para xey con x=<column name>, y=<column name>o x index=<number>, y index=<number>. (Por supuesto, puede utilizar, por ejemplo, el nombre para xy indexpara y, si lo desea). Así, por ejemplo,

    \addplot table[x=x, y=y] {<filename including extension>};
    

    para el primer archivo de ejemplo que se muestra arriba, donde los encabezados de las columnas en realidad son xy y.

    Si la primera fila contiene solo números, pgfplotsno la leerá como nombres de columnas, asumiendo que el archivo no tiene una fila de encabezado.

    • El <column name>es el texto escrito en la primera fila, entonces xy y` para los ejemplos anteriores.
    • Es <number>el número de columna, pero tenga en cuenta que el conteo comienza en cero, así que para obtener la primera columna, xhágalo x index=0.

Código de ejemplo, si es de interés:

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}

\usepackage{filecontents}
\begin{filecontents}{A.dat}
0 0
1 1
2 2
\end{filecontents}

\begin{filecontents}{B.csv}
0,1
1,2
2,3
\end{filecontents}

\begin{filecontents}{C.montypython}
foo bar baz
0 2 3
1 3 4
2 4 5
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table {A.dat};
\addplot table[col sep=comma] {B.csv};
\addplot table[x=foo, y=bar] {C.montypython};
\addplot table[x index=0, y index=2] {C.montypython};

\legend{A,B,C1,C2}
\end{axis}
\end{tikzpicture}
\end{document}

salida del código anterior

información relacionada