Memplot data daripada fail CSV
Tambah fail ke projek anda dan tulis \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; di dalam axis pgfplots.
Plot dua lajur daripada fail
Muat naik fail CSV ke projek anda (atau buatnya di situ). Baris pertama menamakan lajur. x= dan y= memilih lajur mengikut nama, dan col sep=comma menyatakan bahawa koma memisahkan nilai.
Halaman ini menggunakan fail kecil, 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.8Suhu mengikut bulan daripada fail 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}Fail dalam folder juga berfungsi: tulis laluan seperti dalam projek, contohnya {data/weather.csv}.
Beberapa lajur, lajur ralat dan nilai dikira
Baca fail yang sama sekali bagi setiap siri. y error= mengambil bar ralat daripada lajur, dan y expr= mengira nilai daripada baris, dengan \thisrow{name} untuk sesuatu lajur.
Dua siri daripada satu fail
\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}Membaca jadual sekali sahaja
\pgfplotstableread membaca fail ke dalam makro, yang kemudian boleh digunakan oleh setiap \addplot. Cara ini lebih ringkas apabila jadual yang sama digunakan untuk beberapa plot.
\pgfplotstableread dan dua plot
\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
Set data kecil boleh disimpan dalam fail .tex itu sendiri. filecontents* menulis kandungannya sebagai fail dengan nama itu, yang kemudian dibaca oleh \addplot table. Fail itu berada dalam mukadimah, 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 lajur dipisahkan oleh ruang, iaitu lalai pgfplots, jadi col sep tidak diperlukan.
Pilihan jadual
| Pilihan | Fungsinya | Dalam Scissor LaTeX |
|---|---|---|
x=name, y=name | lajur mengikut nama | Berfungsi |
x index=0, y index=1 | lajur mengikut nombor, bermula dari 0 | Berfungsi |
col sep=comma | juga space, tab, semicolon, & | Berfungsi |
header=false | baris pertama ialah data, bukan nama | Berfungsi |
skip first n=2 | mengabaikan baris-baris pertama | Berfungsi |
x expr=, y expr= | mengira nilai, dengan \thisrow{name}, \thisrowno{n} atau \coordindex | Berfungsi |
y error=, x error= | lajur bar ralat | Berfungsi |
comment chars=! | aksara ulasan tambahan (baris # dan % sentiasa dilangkau) | Berfungsi |
\pgfplotstableread | membaca jadual ke dalam makro | Berfungsi |
\pgfplotstabletypeset | mencetak jadual sebagai jadual LaTeX | Tidak disokong: dilangkau dengan mesej |
Sel kosong, nan dan inf dianggap sebagai nilai yang tiada dan ditinggalkan.
Apabila berlaku masalah
Jika fail .csv dibaca tanpa col sep=comma, Scissor LaTeX tetap menemui koma, jadi plot dilukis, tetapi tab Masalah meminta anda menambah pilihan itu. Pemasangan TeX tidak akan meneka, dan plot akan gagal di sana.
col sep tiada: dilukis, dengan peringatan
\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
Fail yang tiada dalam projek menyebabkan plot itu ditinggalkan. Paksi masih dilukis, dan tab Masalah menamakan fail yang tiada.
Fail yang tiada
\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
Perbezaan dengan pemasangan TeX
Semua di sini ialah sintaks pgfplots, jadi fail-fail ini juga dikompil dalam pemasangan TeX. Manual: ctan.org/pkg/pgfplots. Untuk bar ralat daripada lajur, lihat bar ralat.
Soalan dan jawapan
Bagaimanakah cara memplot fail CSV dalam LaTeX?
Letakkan fail dalam projek dan tulis \addplot table[x=a, y=b, col sep=comma] {file.csv}; dalam paksi, dengan nama lajur anda untuk a dan b.
CSV saya menggunakan koma bertitik. Apakah yang perlu saya tulis?
Gunakan col sep=semicolon. Untuk tab, gunakan col sep=tab.
Bolehkah saya memplot lajur berbanding nombor baris?
Ya: table[x expr=\coordindex, y=name] menggunakan 0, 1, 2 dan seterusnya sebagai nilai x.
Setiap contoh di halaman ini disusun atur oleh Scissor LaTeX semasa laman dibina. Kali terakhir dikemas kini 2026-11-07.