
Algum de vocês conhece a formatação padrão para pgfplots
gráficos retirados de arquivos externos (e também o tipo de arquivo aceito, por exemplo txt
, dat
) e o que deve constar \addplot
para 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 sep
chave, 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.
pgfplots
irá, 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>
, oux index=<number>, y index=<number>
. (É claro que você pode usar, por exemplo, o nome forx
eindex
fory
, 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
x
ey
.Se a primeira linha contiver apenas números, ela
pgfplots
nã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, sox
e 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 colunax
você fazx index=0
.
- The
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}