Gráficos con datos de un archivo CSV
Añade el archivo a tu proyecto y escribe \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; dentro de un axis de pgfplots.
Dibujar dos columnas de un archivo
Sube el archivo CSV a tu proyecto (o créalo allí). La primera línea nombra las columnas. x= e y= las eligen por nombre, y col sep=comma indica que los valores van separados por comas.
Esta página usa un archivo pequeño, 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 mes desde un archivo 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}Los archivos dentro de una carpeta también funcionan: escribe la ruta tal como está en el proyecto, por ejemplo {data/weather.csv}.
Varias columnas, columnas de error y valores calculados
Lee el mismo archivo una vez por serie. y error= toma las barras de error de una columna, e y expr= calcula un valor a partir de la fila, con \thisrow{name} para una columna.
Dos series de un mismo archivo
\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}Leer una tabla una sola vez
\pgfplotstableread lee un archivo en una macro, que luego puede usar cualquier \addplot. Es más corto cuando la misma tabla alimenta varios gráficos.
\pgfplotstableread y dos 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}Datos dentro del documento: filecontents
Los conjuntos de datos pequeños pueden vivir en el propio archivo .tex. filecontents* escribe su contenido como un archivo con ese nombre, que luego lee \addplot table. El archivo va en el preámbulo, antes de \begin{document}.
Datos escritos con 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}Aquí las columnas van separadas por espacios, el separador predeterminado de pgfplots, así que no hace falta col sep.
Opciones de tabla
| Opción | Qué hace | En Scissor LaTeX |
|---|---|---|
x=name, y=name | columnas por nombre | Funciona |
x index=0, y index=1 | columnas por número, empezando en 0 | Funciona |
col sep=comma | también space, tab, semicolon, & | Funciona |
header=false | la primera línea son datos, no nombres | Funciona |
skip first n=2 | ignora las primeras líneas | Funciona |
x expr=, y expr= | calculan un valor, con \thisrow{name}, \thisrowno{n} o \coordindex | Funciona |
y error=, x error= | columnas de barras de error | Funciona |
comment chars=! | más caracteres de comentario (las líneas con # y % siempre se saltan) | Funciona |
\pgfplotstableread | lee una tabla en una macro | Funciona |
\pgfplotstabletypeset | imprime una tabla como tabla de LaTeX | No se admite: se omite con un mensaje |
Las celdas vacías, nan e inf se tratan como valores ausentes y se omiten.
Cuando algo sale mal
Si un archivo .csv se lee sin col sep=comma, Scissor LaTeX encuentra igualmente las comas, así que el gráfico se dibuja, pero la pestaña Problemas te pide que añadas la opción. Una instalación de TeX no lo adivinaría, y el gráfico fallaría allí.
Falta col sep: se dibuja, con un recordatorio
\begin{tikzpicture}
\begin{axis}[width=6cm, height=4.5cm]
\addplot table[x=month, y=temp] {data-from-csv-weather.csv};
\end{axis}
\end{tikzpicture}Pestaña Problemas: Add col sep=comma to read data-from-csv-weather.csv so it also works in LaTeX
Un archivo que no está en el proyecto deja fuera ese gráfico. El eje se sigue dibujando, y la pestaña Problemas nombra el archivo que falta.
Un archivo que falta
\begin{tikzpicture}
\begin{axis}[width=6cm, height=4.5cm]
\addplot table[col sep=comma] {results.csv};
\end{axis}
\end{tikzpicture}Pestaña Problemas: Data file not in the project: results.csv
Diferencias con una instalación de TeX
Todo lo de aquí es sintaxis de pgfplots, así que los archivos también compilan en una instalación de TeX. Manual: ctan.org/pkg/pgfplots. Para barras de error desde columnas, consulta barras de error.
Preguntas y respuestas
¿Cómo dibujo un archivo CSV en LaTeX?
Pon el archivo en el proyecto y escribe \addplot table[x=a, y=b, col sep=comma] {file.csv}; en un eje, con los nombres de tus columnas en lugar de a y b.
Mi CSV usa punto y coma. ¿Qué escribo?
Usa col sep=semicolon. Para tabuladores, usa col sep=tab.
¿Puedo dibujar una columna frente al número de fila?
Sí: table[x expr=\coordindex, y=name] usa 0, 1, 2, etc. como valores x.
Scissor LaTeX compone cada ejemplo de esta página al generar el sitio. Última actualización: 2026-11-07.