Langsung ke konten

Memplot data dari file CSV

Tambahkan file itu ke proyek Anda lalu tulis \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; di dalam axis pgfplots.

Plot dua kolom dari sebuah file

Unggah file CSV ke proyek Anda (atau buat di sana). Baris pertama memberi nama kolom. x= dan y= memilihnya berdasarkan nama, dan col sep=comma menyatakan bahwa nilai-nilainya dipisahkan koma.

Halaman ini memakai file kecil, 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

Suhu per bulan dari file CSV

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\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}
Ditata oleh Scissor LaTeX: Suhu per bulan dari file CSV

File di dalam folder juga berfungsi: tulis jalurnya seperti di proyek, misalnya {data/weather.csv}.

Beberapa kolom, kolom galat, dan nilai hitungan

Baca file yang sama sekali per seri. y error= mengambil batang galat dari sebuah kolom, dan y expr= menghitung nilai dari baris tersebut, dengan \thisrow{name} untuk sebuah kolom.

Dua seri dari satu file

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\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}
Ditata oleh Scissor LaTeX: Dua seri dari satu file

Membaca tabel sekali saja

\pgfplotstableread membaca file ke dalam sebuah makro, yang kemudian bisa dipakai oleh setiap \addplot. Cara ini lebih ringkas jika tabel yang sama dipakai oleh beberapa plot.

\pgfplotstableread dan dua plot

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\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 di dalam dokumen: filecontents

Kumpulan data kecil bisa disimpan di dalam file .tex itu sendiri. filecontents* menulis isinya sebagai file dengan nama tersebut, yang kemudian dibaca oleh \addplot table. Blok ini ada di preambul, sebelum \begin{document}.

Data yang ditulis dengan 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}

Di sini kolom-kolom dipisahkan spasi, bawaan pgfplots, jadi col sep tidak diperlukan.

Opsi tabel

OpsiFungsinyaDi Scissor LaTeX
x=name, y=namekolom berdasarkan namaBerfungsi
x index=0, y index=1kolom berdasarkan nomor, mulai dari 0Berfungsi
col sep=commajuga space, tab, semicolon, &Berfungsi
header=falsebaris pertama berisi data, bukan namaBerfungsi
skip first n=2mengabaikan baris-baris pertamaBerfungsi
x expr=, y expr=menghitung nilai, dengan \thisrow{name}, \thisrowno{n}, atau \coordindexBerfungsi
y error=, x error=kolom batang galatBerfungsi
comment chars=!karakter komentar tambahan (baris # dan % selalu dilewati)Berfungsi
\pgfplotstablereadmembaca tabel ke dalam makroBerfungsi
\pgfplotstabletypesetmencetak tabel sebagai tabel LaTeXTidak didukung: dilewati dengan pesan

Sel kosong, nan, dan inf dianggap sebagai nilai yang hilang dan ditinggalkan.

Jika terjadi masalah

Jika file .csv dibaca tanpa col sep=comma, Scissor LaTeX tetap menemukan komanya, sehingga plot tetap digambar, tetapi tab Masalah meminta Anda menambahkan opsi itu. Instalasi TeX tidak akan menebak, dan plotnya akan gagal di sana.

col sep tidak ada: tetap digambar, dengan pengingat

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\begin{tikzpicture}
  \begin{axis}[width=6cm, height=4.5cm]
    \addplot table[x=month, y=temp] {data-from-csv-weather.csv};
  \end{axis}
\end{tikzpicture}

Tab Masalah: Add col sep=comma to read data-from-csv-weather.csv so it also works in LaTeX

File yang tidak ada di proyek membuat plot itu ditinggalkan. Sumbunya tetap digambar, dan tab Masalah menyebutkan nama file yang hilang.

File yang hilang

LaTeXPreambul: \usepackage{pgfplots}Buka di editor (terbuka di tab baru)
\begin{tikzpicture}
  \begin{axis}[width=6cm, height=4.5cm]
    \addplot table[col sep=comma] {results.csv};
  \end{axis}
\end{tikzpicture}

Tab Masalah: Data file not in the project: results.csv

Apa yang berbeda dari instalasi TeX

Semua yang ada di sini adalah sintaks pgfplots, jadi file-filenya juga bisa dikompilasi di instalasi TeX. Manual: ctan.org/pkg/pgfplots. Untuk batang galat dari kolom, lihat batang galat.

Tanya jawab

Bagaimana cara memplot file CSV di LaTeX?

Letakkan file itu di proyek lalu tulis \addplot table[x=a, y=b, col sep=comma] {file.csv}; di dalam sumbu, dengan nama kolom Anda sebagai a dan b.

CSV saya memakai titik koma. Apa yang harus saya tulis?

Pakai col sep=semicolon. Untuk tab, pakai col sep=tab.

Bisakah saya memplot sebuah kolom terhadap nomor baris?

Bisa: table[x expr=\coordindex, y=name] memakai 0, 1, 2, dan seterusnya sebagai nilai x.

Setiap contoh di halaman ini ditata oleh Scissor LaTeX saat situs dibuat. Terakhir diperbarui 2026-11-07.