Aller au contenu

Tracer des données depuis un fichier CSV

Ajoutez le fichier à votre projet et écrivez \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; dans un axis pgfplots.

Tracer deux colonnes d’un fichier

Ajoutez le fichier CSV à votre projet (ou créez-le dans le projet). La première ligne nomme les colonnes. x= et y= les choisissent par leur nom, et col sep=comma indique que les valeurs sont séparées par des virgules.

Cette page utilise un petit fichier, data-from-csv-weather.csv :

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.8

Température par mois depuis un fichier CSV

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\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}
Composé par Scissor LaTeX: Température par mois depuis un fichier CSV

Les fichiers placés dans un dossier fonctionnent aussi : écrivez le chemin tel qu’il apparaît dans le projet, par exemple {data/weather.csv}.

Plusieurs colonnes, colonnes d’erreur et valeurs calculées

Lisez le même fichier une fois par série. y error= prend les barres d’erreur dans une colonne, et y expr= calcule une valeur à partir de la ligne, avec \thisrow{name} pour une colonne.

Deux séries depuis un même fichier

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\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}
Composé par Scissor LaTeX: Deux séries depuis un même fichier

Lire un tableau une seule fois

\pgfplotstableread lit un fichier dans une macro, que chaque \addplot peut ensuite utiliser. C’est plus court lorsque le même tableau alimente plusieurs graphiques.

\pgfplotstableread et deux graphiques

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\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}

Des données dans le document : filecontents

Les petits jeux de données peuvent se trouver dans le fichier .tex lui-même. filecontents* écrit son contenu dans un fichier portant ce nom, que \addplot table lit ensuite. Le fichier se place dans le préambule, avant \begin{document}.

Des données écrites avec 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}

Ici, les colonnes sont séparées par des espaces, le séparateur par défaut de pgfplots : col sep n’est donc pas nécessaire.

Options de tableau

OptionEffetDans Scissor LaTeX
x=name, y=namecolonnes par nomFonctionne
x index=0, y index=1colonnes par numéro, à partir de 0Fonctionne
col sep=commaaussi space, tab, semicolon, &Fonctionne
header=falsela première ligne contient des données, pas des nomsFonctionne
skip first n=2ignore les premières lignesFonctionne
x expr=, y expr=calcule une valeur, avec \thisrow{name}, \thisrowno{n} ou \coordindexFonctionne
y error=, x error=colonnes des barres d’erreurFonctionne
comment chars=!caractères de commentaire supplémentaires (les lignes # et % sont toujours ignorées)Fonctionne
\pgfplotstablereadlit un tableau dans une macroFonctionne
\pgfplotstabletypesetaffiche un tableau sous forme de tableau LaTeXNon pris en charge : ignorée avec un message

Les cellules vides, nan et inf sont traitées comme des valeurs manquantes et omises.

Quand quelque chose ne va pas

Si un fichier .csv est lu sans col sep=comma, Scissor LaTeX trouve quand même les virgules et le graphique est dessiné, mais l’onglet Problèmes vous demande d’ajouter l’option. Une installation TeX ne devinerait pas, et le graphique y échouerait.

col sep manquant : dessiné, avec un rappel

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{tikzpicture}
  \begin{axis}[width=6cm, height=4.5cm]
    \addplot table[x=month, y=temp] {data-from-csv-weather.csv};
  \end{axis}
\end{tikzpicture}

Onglet Problèmes : Add col sep=comma to read data-from-csv-weather.csv so it also works in LaTeX

Un fichier absent du projet fait disparaître le tracé correspondant. L’axe est quand même dessiné, et l’onglet Problèmes nomme le fichier manquant.

Un fichier manquant

LaTeXPréambule : \usepackage{pgfplots}Ouvrir dans l'éditeur (s’ouvre dans un nouvel onglet)
\begin{tikzpicture}
  \begin{axis}[width=6cm, height=4.5cm]
    \addplot table[col sep=comma] {results.csv};
  \end{axis}
\end{tikzpicture}

Onglet Problèmes : Data file not in the project: results.csv

Ce qui diffère d’une installation TeX

Tout ici est de la syntaxe pgfplots : les fichiers compilent donc aussi dans une installation TeX. Manuel : ctan.org/pkg/pgfplots. Pour les barres d’erreur depuis des colonnes, voir barres d’erreur.

Questions et réponses

Comment tracer un fichier CSV en LaTeX ?

Placez le fichier dans le projet et écrivez \addplot table[x=a, y=b, col sep=comma] {file.csv}; dans un axe, avec vos noms de colonnes à la place de a et b.

Mon CSV utilise des points-virgules. Que dois-je écrire ?

Utilisez col sep=semicolon. Pour des tabulations, utilisez col sep=tab.

Puis-je tracer une colonne en fonction du numéro de ligne ?

Oui : table[x expr=\coordindex, y=name] utilise 0, 1, 2, etc. comme valeurs x.

Chaque exemple de cette page est composé par Scissor LaTeX lors de la génération du site. Dernière mise à jour : 2026-11-07.