Data uit een CSV-bestand plotten
Voeg het bestand toe aan je project en schrijf \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; in een pgfplots-axis.
Twee kolommen van een bestand plotten
Upload het CSV-bestand naar je project (of maak het daar aan). De eerste regel noemt de kolommen. x= en y= kiezen ze op naam, en col sep=comma zegt dat komma's de waarden scheiden.
Deze pagina gebruikt een klein bestand, 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.8Temperatuur per maand uit een CSV-bestand
\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}Bestanden in een map werken ook: schrijf het pad zoals in het project, bijvoorbeeld {data/weather.csv}.
Meerdere kolommen, foutkolommen en berekende waarden
Lees hetzelfde bestand één keer per reeks. y error= haalt foutbalken uit een kolom, en y expr= berekent een waarde uit de rij, met \thisrow{name} voor een kolom.
Twee reeksen uit één bestand
\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}Een tabel één keer inlezen
\pgfplotstableread leest een bestand in een macro, die elke \addplot daarna kan gebruiken. Dat is korter als dezelfde tabel meerdere grafieken voedt.
\pgfplotstableread en twee grafieken
\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}Data in het document: filecontents
Kleine datasets kunnen in het .tex-bestand zelf staan. filecontents* schrijft de inhoud als bestand met die naam, dat \addplot table daarna leest. Het bestand staat in de preambule, vóór \begin{document}.
Data geschreven met 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}Hier zijn de kolommen gescheiden door spaties, de standaard van pgfplots, dus col sep is niet nodig.
Tabelopties
| Optie | Wat het doet | In Scissor LaTeX |
|---|---|---|
x=name, y=name | kolommen op naam | Werkt |
x index=0, y index=1 | kolommen op nummer, vanaf 0 | Werkt |
col sep=comma | ook space, tab, semicolon, & | Werkt |
header=false | de eerste regel is data, geen namen | Werkt |
skip first n=2 | de eerste regels negeren | Werkt |
x expr=, y expr= | een waarde berekenen, met \thisrow{name}, \thisrowno{n} of \coordindex | Werkt |
y error=, x error= | kolommen voor foutbalken | Werkt |
comment chars=! | meer commentaartekens (regels met # en % worden altijd overgeslagen) | Werkt |
\pgfplotstableread | een tabel in een macro inlezen | Werkt |
\pgfplotstabletypeset | een tabel als LaTeX-tabel afdrukken | Niet ondersteund: overgeslagen met een melding |
Lege cellen, nan en inf gelden als ontbrekende waarden en worden weggelaten.
Als er iets misgaat
Wordt een .csv-bestand gelezen zonder col sep=comma, dan vindt Scissor LaTeX de komma's toch, dus de grafiek wordt getekend, maar het tabblad Problemen vraagt je de optie toe te voegen. Een TeX-installatie zou niet raden, en daar zou de grafiek mislukken.
Ontbrekende col sep: getekend, met een herinnering
\begin{tikzpicture}
\begin{axis}[width=6cm, height=4.5cm]
\addplot table[x=month, y=temp] {data-from-csv-weather.csv};
\end{axis}
\end{tikzpicture}Tabblad Problemen: Add col sep=comma to read data-from-csv-weather.csv so it also works in LaTeX
Een bestand dat niet in het project staat, laat die grafiek weg. De as wordt toch getekend, en het tabblad Problemen noemt het ontbrekende bestand.
Een ontbrekend bestand
\begin{tikzpicture}
\begin{axis}[width=6cm, height=4.5cm]
\addplot table[col sep=comma] {results.csv};
\end{axis}
\end{tikzpicture}Tabblad Problemen: Data file not in the project: results.csv
Wat anders is dan in een TeX-installatie
Alles hier is pgfplots-syntaxis, dus de bestanden compileren ook in een TeX-installatie. Handleiding: ctan.org/pkg/pgfplots. Voor foutbalken uit kolommen, zie foutbalken.
Vragen en antwoorden
Hoe plot ik een CSV-bestand in LaTeX?
Zet het bestand in het project en schrijf \addplot table[x=a, y=b, col sep=comma] {file.csv}; in een as, met je eigen kolomnamen voor a en b.
Mijn CSV gebruikt puntkomma's. Wat schrijf ik?
Gebruik col sep=semicolon. Voor tabs gebruik je col sep=tab.
Kan ik een kolom tegen het rijnummer plotten?
Ja: table[x expr=\coordindex, y=name] gebruikt 0, 1, 2 enzovoort als x-waarden.
Elk voorbeeld op deze pagina wordt door Scissor LaTeX gezet wanneer de site wordt gebouwd. Laatst bijgewerkt op 2026-11-07.