formatação de arquivo externo pgfplots

formatação de arquivo externo pgfplots

Algum de vocês conhece a formatação padrão para pgfplotsgráficos retirados de arquivos externos (e também o tipo de arquivo aceito, por exemplo txt, dat) e o que deve constar \addplotpara que os dados sejam retirados desse arquivo exato

Obrigado por qualquer ajuda.

Responder1

  • Acredito que arquivos de texto simples são a única coisa suportada, mas a extensão do arquivo é o que você quiser, .txt, .dat, .csv, .montypython, qualquer que seja.

  • O formato padrão são colunas delimitadas por espaços em branco, no sentido de que o delimitador de coluna esperado padrão é um espaço em branco ("pelo menos uma tabulação ou espaço", para citar o manual). No entanto, você pode especificar um separador diferente com a col sepchave, que pode ter estas opções diferentes:

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

    Então, se você tiver um arquivo de texto parecido com

    x y
    1 1
    2 3
    

    então você pode fazer

    \addplot table {<filename including extension>};
    

    e você obtém um gráfico de y vs. pgfplotsirá, se não for instruído de outra forma, usar a primeira coluna para os valores x e a segunda para os valores y.

    Se você tiver um arquivo separado por vírgula, ou seja

    x,y
    1,1
    2,3
    

    então você precisa dizer

    \addplot table[col sep=comma] {<filename including extension>};
    
  • Se você tiver mais de duas colunas, selecione as colunas desejadas para xey com x=<column name>, y=<column name>, ou x index=<number>, y index=<number>. (É claro que você pode usar, por exemplo, o nome for xe indexfor y, se desejar.) Então, por exemplo,

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

    para o primeiro arquivo de exemplo mostrado acima, onde os títulos das colunas na verdade são xe y.

    Se a primeira linha contiver apenas números, ela pgfplotsnão será lida como nomes de colunas, assumindo que o arquivo não possui uma linha de cabeçalho.

    • The <column name>é o texto escrito na primeira linha, so xe y` para os exemplos acima.
    • O <number>é o número da coluna, mas observe que a contagem começa em zero, então para obter a primeira coluna xvocê faz x index=0.

Código de exemplo, se for do seu interesse:

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

saída do código acima

informação relacionada