İçeriğe geç

CSV dosyasındaki verilerin grafiğini çizmek

Dosyayı projenize ekleyin ve bir pgfplots axis'inin içine \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; yazın.

Bir dosyanın iki sütununu çizin

CSV dosyasını projenize yükleyin (ya da orada oluşturun). İlk satır sütunları adlandırır. x= ve y= onları adıyla seçer, col sep=comma ise değerlerin virgülle ayrıldığını söyler.

Bu sayfa küçük bir dosya kullanır, 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

Bir CSV dosyasından aylık sıcaklık

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\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}
Scissor LaTeX tarafından dizildi: Bir CSV dosyasından aylık sıcaklık

Bir klasördeki dosyalar da çalışır: yolu projedeki gibi yazın, örneğin {data/weather.csv}.

Birkaç sütun, hata sütunları ve hesaplanan değerler

Aynı dosyayı her seri için bir kez okuyun. y error= hata çubuklarını bir sütundan alır, y expr= ise satırdan bir değer hesaplar; bir sütun için \thisrow{name} kullanılır.

Tek dosyadan iki seri

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\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}
Scissor LaTeX tarafından dizildi: Tek dosyadan iki seri

Bir tabloyu bir kez okumak

\pgfplotstableread bir dosyayı bir makroya okur; ardından her \addplot onu kullanabilir. Aynı tablo birkaç grafiği beslediğinde daha kısadır.

\pgfplotstableread ve iki grafik

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\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}

Belgenin içindeki veriler: filecontents

Küçük veri kümeleri .tex dosyasının kendisinde durabilir. filecontents* içeriğini o adda bir dosya olarak yazar; ardından \addplot table onu okur. Dosya giriş bölümünde, \begin{document}'ten önce yer alır.

filecontents* ile yazılan veriler

\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}

Burada sütunlar pgfplots varsayılanı olan boşluklarla ayrılmıştır, bu yüzden col sep gerekmez.

Tablo seçenekleri

SeçenekNe yaparScissor LaTeX'te
x=name, y=nameada göre sütunlarÇalışır
x index=0, y index=10'dan başlayarak numaraya göre sütunlarÇalışır
col sep=commaayrıca space, tab, semicolon, &Çalışır
header=falseilk satır ad değil, veridirÇalışır
skip first n=2ilk satırları yok sayarÇalışır
x expr=, y expr=\thisrow{name}, \thisrowno{n} veya \coordindex ile bir değer hesaplarÇalışır
y error=, x error=hata çubuğu sütunlarıÇalışır
comment chars=!ek yorum karakterleri (# ve % satırları her zaman atlanır)Çalışır
\pgfplotstablereadbir tabloyu bir makroya okurÇalışır
\pgfplotstabletypesetbir tabloyu LaTeX tablosu olarak yazdırırDesteklenmiyor: bir iletiyle atlanır

Boş hücreler, nan ve inf eksik değer olarak ele alınır ve dışarıda bırakılır.

Bir şeyler ters gittiğinde

Bir .csv dosyası col sep=comma olmadan okunursa Scissor LaTeX virgülleri yine bulur, böylece grafik çizilir; ancak Sorunlar sekmesi seçeneği eklemenizi ister. Bir TeX kurulumu tahmin yürütmez ve grafik orada başarısız olur.

Eksik col sep: bir hatırlatmayla çizilir

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\begin{tikzpicture}
  \begin{axis}[width=6cm, height=4.5cm]
    \addplot table[x=month, y=temp] {data-from-csv-weather.csv};
  \end{axis}
\end{tikzpicture}

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

Projede olmayan bir dosya o grafiği dışarıda bırakır. Eksen yine çizilir ve Sorunlar sekmesi eksik dosyayı adıyla belirtir.

Eksik bir dosya

LaTeXÖnsöz: \usepackage{pgfplots}Düzenleyicide aç (yeni sekmede açılır)
\begin{tikzpicture}
  \begin{axis}[width=6cm, height=4.5cm]
    \addplot table[col sep=comma] {results.csv};
  \end{axis}
\end{tikzpicture}

Sorunlar sekmesi: Data file not in the project: results.csv

TeX kurulumundan farkları

Buradaki her şey pgfplots sözdizimidir, bu yüzden dosyalar bir TeX kurulumunda da derlenir. Kılavuz: ctan.org/pkg/pgfplots. Sütunlardan hata çubukları için bkz. hata çubukları.

Sorular ve yanıtlar

LaTeX'te bir CSV dosyası nasıl çizilir?

Dosyayı projeye koyun ve bir eksenin içine, a ve b yerine kendi sütun adlarınızla \addplot table[x=a, y=b, col sep=comma] {file.csv}; yazın.

CSV dosyam noktalı virgül kullanıyor. Ne yazmalıyım?

col sep=semicolon kullanın. Sekmeler için col sep=tab kullanın.

Bir sütunu satır numarasına göre çizebilir miyim?

Evet: table[x expr=\coordindex, y=name] x değerleri olarak 0, 1, 2 ve devamını kullanır.

Bu sayfadaki her örnek, site oluşturulurken Scissor LaTeX tarafından dizilir. Son güncelleme: 2026-11-07.