pgfplots externe Dateiformatierung

pgfplots externe Dateiformatierung

Kennt jemand von euch die Standardformatierung für pgfplotsDiagramme, die aus externen Dateien stammen (und auch den akzeptierten Dateityp, z. B. txt, dat) und was in die eingegeben werden muss, \addplotdamit die Daten aus genau dieser Datei stammen?

Vielen Dank für jede Hilfe.

Antwort1

  • Ich glaube, es werden nur reine Textdateien unterstützt, aber die Dateierweiterung kann beliebig sein, .txt, .dat, .csv, .montypython, was auch immer.

  • Das Standardformat sind durch Leerzeichen getrennte Spalten, in dem Sinne, dass das standardmäßig erwartete Spaltentrennzeichen Leerzeichen sind („mindestens ein Tabulator oder Leerzeichen“, um das Handbuch zu zitieren). Sie können jedoch mit dem col sepSchlüssel ein anderes Trennzeichen angeben, das diese verschiedenen Optionen haben kann:

    col sep=space|tab|comma|colon|semicolon|braces|&|ampersand
    

    Wenn Sie also eine Textdatei haben, die wie folgt aussieht:

    x y
    1 1
    2 3
    

    dann kannst du tun

    \addplot table {<filename including extension>};
    

    und Sie erhalten ein Diagramm von y vs. x. pgfplotsSofern nicht anders angegeben, wird die erste Spalte für die x-Werte und die zweite für die y-Werte verwendet.

    Wenn Sie eine durch Kommas getrennte Datei haben, d.h.

    x,y
    1,1
    2,3
    

    dann musst du sagen

    \addplot table[col sep=comma] {<filename including extension>};
    
  • Wenn Sie mehr als zwei Spalten haben, wählen Sie die gewünschten Spalten für x und y entweder mit x=<column name>, y=<column name>oder aus x index=<number>, y index=<number>. (Sie können natürlich auch den Namen für xoder indexfür verwenden y, wenn Sie möchten.) Also zum Beispiel:

    \addplot table[x=x, y=y] {<filename including extension>};
    

    für die erste oben gezeigte Beispieldatei, wo die Spaltenüberschriften tatsächlich xund sind y.

    Wenn die erste Zeile nur Zahlen enthält, pgfplotswird sie nicht als Spaltennamen gelesen, sondern es wird stattdessen davon ausgegangen, dass die Datei keine Kopfzeile hat.

    • Dies <column name>ist der in der ersten Zeile geschriebene Text, also xund y` für die obigen Beispiele.
    • Dies <number>ist die Spaltennummer. Beachten Sie jedoch, dass die Zählung bei Null beginnt. Um die erste Spalte zu erhalten, müssen xSie also Folgendes tun x index=0.

Beispielcode, falls das von Interesse ist:

\documentclass[border=5mm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.15}

\usepackage{filecontents}
\begin{filecontents}{A.dat}
0 0
1 1
2 2
\end{filecontents}

\begin{filecontents}{B.csv}
0,1
1,2
2,3
\end{filecontents}

\begin{filecontents}{C.montypython}
foo bar baz
0 2 3
1 3 4
2 4 5
\end{filecontents}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot table {A.dat};
\addplot table[col sep=comma] {B.csv};
\addplot table[x=foo, y=bar] {C.montypython};
\addplot table[x index=0, y index=2] {C.montypython};

\legend{A,B,C1,C2}
\end{axis}
\end{tikzpicture}
\end{document}

Ausgabe des obigen Codes

verwandte Informationen