Μετάβαση στο περιεχόμενο

Γραφήματα δεδομένων από αρχείο 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:

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=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: σχεδιάζεται, με υπενθύμιση

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

Ένα αρχείο που δεν βρίσκεται στο έργο αφήνει έξω αυτό το γράφημα. Ο άξονας σχεδιάζεται κανονικά, και η καρτέλα Προβλήματα κατονομάζει το αρχείο που λείπει.

Ένα αρχείο που λείπει

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. Για ράβδους σφάλματος από στήλες, δείτε ράβδοι σφάλματος.

Ερωτήσεις και απαντήσεις

Πώς σχεδιάζω ένα αρχείο 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.