Diagramme mit LaTeX - Visualisierung von Daten mit pgfplots

Das pgfplots Paket aus tikz/pgf ermöglicht dir Diagramme direkt aus .csv Dateien mit LaTeX generieren zu lassen.


[Dokument online öffnen]

Die Visualisierung von Daten kann einfach mit autogenerierten Diagrammen unter Verwendung des pgfplots Pakets realisiert werden. Es wird dringend empfohlen zunächst die Lektion 9 zu lesen, da hier grundlegende Dinge zur Struktur der verwendeten .csv Dateien erwähnt werden.

Um aus einer .csv Datei ein Diagramm generieren zu lassen, wird der folgende Code verwendet:

\documentclass{article}

\usepackage{siunitx}
\usepackage{tikz} % To generate the plot from csv
\usepackage{pgfplots}

\pgfplotsset{compat=newest} % Allows to place the legend below plot
\usepgfplotslibrary{units} % Allows to enter the units nicely

\sisetup{
  round-mode          = places,
  round-precision     = 2,
}

\begin{document}

\begin{figure}[h!]
  \begin{center}
    \begin{tikzpicture}
      \begin{axis}[
          width=\linewidth, % Scale the plot to \linewidth
          grid=major, % Display a grid
          grid style={dashed,gray!30}, % Set the style
          xlabel=X Axis $U$, % Set the labels
          ylabel=Y Axis $I$,
          x unit=\si{\volt}, % Set the respective units
          y unit=\si{\ampere},
          legend style={at={(0.5,-0.2)},anchor=north}, % Put the legend below the plot
          x tick label style={rotate=90,anchor=east} % Display labels sideways
        ]
        \addplot 
        % add a plot from table; you select the columns by using the actual name in
        % the .csv file (on top)
        table[x=column 1,y=column 2,col sep=comma] {table.csv}; 
        \legend{Plot}
      \end{axis}
    \end{tikzpicture}
    \caption{My first autogenerated plot.}
  \end{center}
\end{figure}

\end{document}

Nach dem Kompilieren wird das folgende Diagramm in der .pdf Datei erscheinen:

pgfplots example

Wir haben die folgenden Pakete und Code zur Erstellung des Plots hinzugefügt:

...
\usepackage{tikz}
\usepackage{pgfplots}
...
\pgfplotsset{compat=newest}
\usepgfplotslibrary{units}
...
\begin{figure}[h!]
  \begin{center}
    \begin{tikzpicture}
      \begin{axis}[
          width=\linewidth, % Scale the plot to \linewidth
          grid=major, 
          grid style={dashed,gray!30},
          xlabel=X Axis $U$, % Set the labels
          ylabel=Y Axis $I$,
          x unit=\si{\volt}, % Set the respective units
          y unit=\si{\ampere},
          legend style={at={(0.5,-0.2)},anchor=north},
          x tick label style={rotate=90,anchor=east}
        ]
        \addplot 
        % add a plot from table; you select the columns by using the actual name in
        % the .csv file (on top)
        table[x=column 1,y=column 2,col sep=comma] {table.csv}; 
        \legend{Plot}
      \end{axis}
    \end{tikzpicture}
    \caption{My first autogenerated plot.}
  \end{center}
\end{figure}
...

Im ersten Teil sind die benötigten Pakete zu sehen, während im zweiten Teil nur zwei Konfigurationseinstellungen vorgenommen werden. Dies sind zum einen \pgfplotsset{compat=newest} welches die Rückwärtskompatibilität mit älteren pgfplots Versionen deaktiviert und uns erlaubt die Legende unter dem Diagramm zu platzieren und zum anderen \usepgfplotslibrary{units} was zwei neue Befehle aktiviert (x unit und y unit) und uns erlaubt die Einheiten in eckigen Klammern anzeigen zu lassen. Die weiteren Befehle sollten selbsterklärend sein. Es gibt Befehle wie width, xlabel, ylabel etc. Du solltest dies einmal auskommentieren und einfach schauen was sich verändert, wenn du dir nicht sicher bist.

Der für uns wichtigste Teil in diesem Tutorial ist:

...
        table[x=column 1,y=column 2,col sep=comma] {table.csv};
...

Sofern eine .csv Datei in dem Format:

column 1,column 2
1,2
11.432,2342.23123123

vorliegt, können wir mit x=column 1 eine Spalte für die X-Werte selektieren und mit y=column 2 die Werte für die Y-Achse. Außerdem möchten wir festlegen, dass zur Trennung der Spalten ein Komma verwendet wird, weshalb wir col sep=comma setzen. Um weitere Plots zu erstellen genügt es den oben stehenden Code zu kopieren und entsprechend andere .csv Dateien auszuwählen und die korrekten Spalten zu selektieren. Den Rest erledigt pgfplots für uns automatisch. Es gibt noch weitere Optionen um bspw. Balkendiagramme und ähnliches zu erzeugen, was ich eventuell in einem gesonderten Tutorial noch einmal erklären werde.

Zusammenfassung

  • Das erstellen von Diagrammen ist einfach mit pgfplots, wir können direkt .csv Dateien einlesen und anzeigen lassen.
  • Die Spalte lässt sich über den in der Datei verwendeten Spaltennamen selektieren, z.B.: table[x=column 1,y=column 2…

Nächste Lektion: Lektion 11