सामग्री पर जाएँ

CSV फ़ाइल से डेटा प्लॉट करना

फ़ाइल को अपने प्रोजेक्ट में जोड़ें और pgfplots axis के अंदर \addplot table[x=col1, y=col2, col sep=comma] {file.csv}; लिखें।

किसी फ़ाइल के दो कॉलम प्लॉट करें

CSV फ़ाइल अपने प्रोजेक्ट में अपलोड करें (या वहीं बनाएँ)। पहली लाइन कॉलम के नाम बताती है। x= और y= उन्हें नाम से चुनते हैं, और col sep=comma बताता है कि वैल्यू कॉमा से अलग हैं।

यह पेज एक छोटी फ़ाइल 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

CSV फ़ाइल से हर महीने का तापमान

LaTeXप्रीएम्बल: \usepackage{pgfplots}एडिटर में खोलें (नए टैब में खुलता है)
\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 द्वारा टाइपसेट: CSV फ़ाइल से हर महीने का तापमान

फ़ोल्डर में रखी फ़ाइलें भी काम करती हैं: पाथ वैसे ही लिखें जैसे प्रोजेक्ट में है, जैसे {data/weather.csv}।

कई कॉलम, एरर कॉलम और गणना की गई वैल्यू

हर सीरीज़ के लिए एक ही फ़ाइल एक बार पढ़ें। y error= किसी कॉलम से एरर बार लेता है, और y expr= पंक्ति से एक वैल्यू गणना करता है, किसी कॉलम के लिए \thisrow{name} के साथ।

एक फ़ाइल से दो सीरीज़

LaTeXप्रीएम्बल: \usepackage{pgfplots}एडिटर में खोलें (नए टैब में खुलता है)
\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 द्वारा टाइपसेट: एक फ़ाइल से दो सीरीज़

टेबल को एक बार पढ़ना

\pgfplotstableread एक फ़ाइल को एक मैक्रो में पढ़ता है, जिसे फिर हर \addplot इस्तेमाल कर सकता है। जब एक ही टेबल कई प्लॉट में जाती है, तो यह छोटा पड़ता है।

\pgfplotstableread और दो प्लॉट

LaTeXप्रीएम्बल: \usepackage{pgfplots}एडिटर में खोलें (नए टैब में खुलता है)
\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=commaspace, 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 फिर भी कॉमा ढूँढ लेता है, इसलिए प्लॉट ड्रॉ होता है, पर Problems टैब आपसे ऑप्शन जोड़ने को कहता है। TeX इंस्टॉलेशन अंदाज़ा नहीं लगाता, और वहाँ प्लॉट फ़ेल हो जाता।

col sep गायब: याद दिलाने के साथ ड्रॉ होता है

LaTeXप्रीएम्बल: \usepackage{pgfplots}एडिटर में खोलें (नए टैब में खुलता है)
\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

जो फ़ाइल प्रोजेक्ट में नहीं है, उसका प्लॉट छूट जाता है। ऐक्सिस फिर भी ड्रॉ होता है, और Problems टैब गायब फ़ाइल का नाम बताता है।

एक गायब फ़ाइल

LaTeXप्रीएम्बल: \usepackage{pgfplots}एडिटर में खोलें (नए टैब में खुलता है)
\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। कॉलम से एरर बार के लिए देखें एरर बार।

सवाल और जवाब

LaTeX में CSV फ़ाइल कैसे प्लॉट करें?

फ़ाइल को प्रोजेक्ट में रखें और किसी ऐक्सिस में \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] x वैल्यू के रूप में 0, 1, 2 वगैरह इस्तेमाल करता है।

इस पेज का हर उदाहरण साइट बनते समय Scissor LaTeX टाइपसेट करता है। पिछला अपडेट: 2026-11-07।