Plotando dados de um arquivo CSV
Adicione o arquivo ao seu projeto e escreva \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; dentro de um axis do pgfplots.
Plote duas colunas de um arquivo
Envie o arquivo CSV para o seu projeto (ou crie-o lá). A primeira linha dá nome às colunas. x= e y= as escolhem pelo nome, e col sep=comma diz que os valores são separados por vírgulas.
Esta página usa um arquivo pequeno, data-from-csv-weather.csv:
month,temp,rain,sd
1,1.2,44,0.8
2,2.0,38,0.7
3,5.6,41,0.9
...
12,2.3,46,0.8Temperatura por mês a partir de um arquivo CSV
\begin{tikzpicture}
\begin{axis}[xlabel={Month}, ylabel={Temperature ($^\circ$C)}, xtick={1,...,12}]
\addplot table[x=month, y=temp, col sep=comma] {data-from-csv-weather.csv};
\end{axis}
\end{tikzpicture}Arquivos dentro de uma pasta também funcionam: escreva o caminho como está no projeto, por exemplo {data/weather.csv}.
Várias colunas, colunas de erro e valores calculados
Leia o mesmo arquivo uma vez por série. y error= tira as barras de erro de uma coluna, e y expr= calcula um valor a partir da linha, com \thisrow{name} para uma coluna.
Duas séries de um mesmo arquivo
\begin{tikzpicture}
\begin{axis}[xlabel={Month}, ylabel={Value}, legend pos=north west, ymin=0]
\addplot+[error bars/.cd, y dir=both, y explicit]
table[x=month, y=temp, y error=sd, col sep=comma] {data-from-csv-weather.csv};
\addplot+[mark=none, dashed]
table[x=month, y expr=\thisrow{rain}/2, col sep=comma] {data-from-csv-weather.csv};
\legend{Temperature ($^\circ$C), Rain / 2 (mm)}
\end{axis}
\end{tikzpicture}Lendo uma tabela uma única vez
\pgfplotstableread lê um arquivo para dentro de uma macro, que qualquer \addplot pode usar depois. Fica mais curto quando a mesma tabela alimenta vários gráficos.
\pgfplotstableread e dois gráficos
\pgfplotstableread[col sep=comma]{data-from-csv-weather.csv}\weather
\begin{tikzpicture}
\begin{axis}[ybar, bar width=6pt, ymin=0, xlabel={Month}, ylabel={Rain (mm)},
xtick={1,...,12}, enlarge x limits=0.06]
\addplot table[x=month, y=rain] {\weather};
\end{axis}
\end{tikzpicture}Dados dentro do documento: filecontents
Conjuntos de dados pequenos podem ficar no próprio arquivo .tex. filecontents* grava o seu conteúdo como um arquivo com aquele nome, que o \addplot table então lê. O bloco fica no preâmbulo, antes de \begin{document}.
Dados escritos com filecontents*
\documentclass{article}
\usepackage{pgfplots}
\begin{filecontents*}{speed.dat}
t v
0 0
1 4.4
2 8.1
3 11.0
4 13.2
\end{filecontents*}
\begin{document}
\begin{tikzpicture}
\begin{axis}[xlabel={Time (s)}, ylabel={Speed (m/s)}]
\addplot table[x=t, y=v] {speed.dat};
\end{axis}
\end{tikzpicture}
\end{document}Aqui as colunas são separadas por espaços, o padrão do pgfplots, então col sep não é necessário.
Opções de tabela
| Opção | O que faz | No Scissor LaTeX |
|---|---|---|
x=name, y=name | colunas pelo nome | Funciona |
x index=0, y index=1 | colunas pelo número, a partir de 0 | Funciona |
col sep=comma | também space, tab, semicolon, & | Funciona |
header=false | a primeira linha é de dados, não de nomes | Funciona |
skip first n=2 | ignora as primeiras linhas | Funciona |
x expr=, y expr= | calcula um valor, com \thisrow{name}, \thisrowno{n} ou \coordindex | Funciona |
y error=, x error= | colunas de barras de erro | Funciona |
comment chars=! | mais caracteres de comentário (linhas com # e % são sempre puladas) | Funciona |
\pgfplotstableread | lê uma tabela para dentro de uma macro | Funciona |
\pgfplotstabletypeset | imprime uma tabela como tabela LaTeX | Não suportado: pulado com uma mensagem |
Células vazias, nan e inf são tratados como valores ausentes e ficam de fora.
Quando algo dá errado
Se um arquivo .csv for lido sem col sep=comma, o Scissor LaTeX encontra as vírgulas mesmo assim, então o gráfico é desenhado, mas a aba Problemas pede que você acrescente a opção. Uma instalação do TeX não adivinharia, e o gráfico falharia lá.
Sem col sep: desenhado, com um lembrete
\begin{tikzpicture}
\begin{axis}[width=6cm, height=4.5cm]
\addplot table[x=month, y=temp] {data-from-csv-weather.csv};
\end{axis}
\end{tikzpicture}Aba Problemas: Add col sep=comma to read data-from-csv-weather.csv so it also works in LaTeX
Um arquivo que não está no projeto deixa aquele gráfico de fora. Os eixos são desenhados mesmo assim, e a aba Problemas indica o arquivo que falta.
Um arquivo ausente
\begin{tikzpicture}
\begin{axis}[width=6cm, height=4.5cm]
\addplot table[col sep=comma] {results.csv};
\end{axis}
\end{tikzpicture}Aba Problemas: Data file not in the project: results.csv
O que muda em relação a uma instalação do TeX
Tudo aqui é sintaxe do pgfplots, então os arquivos também compilam numa instalação do TeX. Manual: ctan.org/pkg/pgfplots. Para barras de erro a partir de colunas, veja barras de erro.
Perguntas e respostas
Como ploto um arquivo CSV em LaTeX?
Coloque o arquivo no projeto e escreva \addplot table[x=a, y=b, col sep=comma] {file.csv}; num axis, com os nomes das suas colunas no lugar de a e b.
Meu CSV usa ponto e vírgula. O que escrevo?
Use col sep=semicolon. Para tabulações, use col sep=tab.
Posso plotar uma coluna em função do número da linha?
Sim: table[x expr=\coordindex, y=name] usa 0, 1, 2 e assim por diante como valores de x.
Cada exemplo desta página é composto pelo Scissor LaTeX quando o site é gerado. Última atualização: 2026-11-07.