Графіки з даних у файлі CSV
Додайте файл у свій проєкт і напишіть \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; усередині axis пакета pgfplots.
Графік двох стовпців файлу
Завантажте файл CSV у свій проєкт (або створіть його там). Перший рядок дає назви стовпцям. x= і y= вибирають їх за назвою, а col sep=comma вказує, що значення розділені комами.
На цій сторінці використовується невеликий файл 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.8Температура за місяцями з файлу 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}Файли в папці теж працюють: пишіть шлях так, як у проєкті, наприклад {data/weather.csv}.
Кілька стовпців, стовпці похибок і обчислені значення
Читайте той самий файл по одному разу на кожен ряд. y error= бере планки похибок зі стовпця, а y expr= обчислює значення з рядка, де \thisrow{name} означає стовпець.
Два ряди з одного файлу
\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}Одноразове читання таблиці
\pgfplotstableread читає файл у макрос, яким потім може користуватися кожен \addplot. Це коротше, коли та сама таблиця живить кілька графіків.
\pgfplotstableread і два графіки
\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}Дані всередині документа: filecontents
Невеликі набори даних можуть жити в самому файлі .tex. filecontents* записує свій вміст у файл із цією назвою, який потім читає \addplot table. Блок стоїть у преамбулі, перед \begin{document}.
Дані, записані через 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}Тут стовпці розділені пробілами, як заведено в pgfplots за замовчуванням, тож col sep не потрібен.
Параметри таблиці
| Параметр | Що робить | У Scissor LaTeX |
|---|---|---|
x=name, y=name | стовпці за назвою | Працює |
x index=0, y index=1 | стовпці за номером, починаючи з 0 | Працює |
col sep=comma | також space, tab, semicolon, & | Працює |
header=false | перший рядок є даними, а не назвами | Працює |
skip first n=2 | ігнорувати перші рядки | Працює |
x expr=, y expr= | обчислити значення через \thisrow{name}, \thisrowno{n} або \coordindex | Працює |
y error=, x error= | стовпці планок похибок | Працює |
comment chars=! | додаткові символи коментаря (рядки з # і % пропускаються завжди) | Працює |
\pgfplotstableread | прочитати таблицю в макрос | Працює |
\pgfplotstabletypeset | вивести таблицю як таблицю LaTeX | Не підтримується: пропускається з повідомленням |
Порожні клітинки, nan і inf вважаються відсутніми значеннями й пропускаються.
Коли щось іде не так
Якщо файл .csv читається без col sep=comma, Scissor LaTeX однаково знаходить коми, тож графік малюється, але вкладка «Проблеми» просить додати цей параметр. Установлений TeX не здогадався б, і там графік не вийшов би.
Без col sep: малюється з нагадуванням
\begin{tikzpicture}
\begin{axis}[width=6cm, height=4.5cm]
\addplot table[x=month, y=temp] {data-from-csv-weather.csv};
\end{axis}
\end{tikzpicture}Вкладка «Проблеми»: Add col sep=comma to read data-from-csv-weather.csv so it also works in LaTeX
Якщо файлу немає в проєкті, цей графік пропускається. Вісь усе одно малюється, а вкладка «Проблеми» називає відсутній файл.
Відсутній файл
\begin{tikzpicture}
\begin{axis}[width=6cm, height=4.5cm]
\addplot table[col sep=comma] {results.csv};
\end{axis}
\end{tikzpicture}Вкладка «Проблеми»: Data file not in the project: results.csv
Чим це відрізняється від установленого TeX
Усе тут є синтаксисом pgfplots, тож файли компілюються й в установленому TeX. Посібник: ctan.org/pkg/pgfplots. Про планки похибок зі стовпців див. планки похибок.
Запитання й відповіді
Як побудувати графік з файлу CSV у LaTeX?
Помістіть файл у проєкт і напишіть в осі \addplot table[x=a, y=b, col sep=comma] {file.csv};, підставивши назви своїх стовпців замість a і b.
Мій CSV використовує крапки з комою. Що писати?
Використайте col sep=semicolon. Для табуляцій використайте col sep=tab.
Чи можна побудувати стовпець відносно номера рядка?
Так: table[x expr=\coordindex, y=name] використовує 0, 1, 2 і так далі як значення x.
Кожен приклад на цій сторінці верстається в Scissor LaTeX під час збирання сайту. Оновлено 2026-11-07.