iX 4/2016
S. 152
Praxis
Tools & Tipps
Aufmacherbild

Datenvisualisierung mit Gnuplot

Tortenautomat

Zahlen, gerade in großen Mengen, werden leicht unübersichtlich und schwer zu interpretieren, sofern sie nicht fürs Auge aufbereitet wurden. Das quelloffene Gnuplot ist ein universell einsetzbares Werkzeug, mit dem man Daten schnell und automatisiert visualisieren kann.

Gold ist teuer, Silber vergleichsweise billig. Dank angepasster Visualisierung in Gnuplot lassen sich die Preise vergleichen.

Gnuplot lässt sich auf allen gängigen Betriebssystemen installieren. Bei Linux ist es zumeist Bestandteil der Standard-Repositories. Nach dem Start findet man sich in der interaktiven Gnuplot-Konsole wieder und kann sofort loslegen – etwa mit dem Plotten einer Gruppe bekannter Funktionen. Dazu genügt die Eingabe des Befehls plot gefolgt von den Funktionsaufrufen: plot sin(x), cos(x), x**2. Hierauf öffnet sich ein neues Fenster, in dem die Graphen von Sinus und Cosinus sowie eine Parabel erscheinen. Je nach Backend bietet das Fenster Wege, die Darstellung anzupassen – mit der Taste h lässt sich in der Konsole eine Übersicht der entsprechenden Funktionen anzeigen. An dieser Stelle sei auch auf das interne Hilfesystem verwiesen. help commando gibt nähere Informationen zu allen in Gnuplot verfügbaren Befehlen inklusive ausführlicher Beispiele.

Visualisierung aus Dateien

Daten liegen nur selten in Form von Funktionen vor, weitaus häufiger in Wertetabellen. Gnuplot setzt dabei auf ein vergleichsweise einfaches Format: ein Datensatz pro Zeile, Leerzeichen oder Tabulatoren als Trennzeichen.

Als Zahlenbeispiel dienen die historischen Kursdaten für Gold und Silber im Juli 2015, die der Website investing.com entnommen sind. Die erste Spalte enthält den Tag gefolgt vom Gold- und Silberpreis:

31 1095.4 14.785
30 1088.7 14.696
...

Diese Daten liegen in der Datei metalle vor. Um sie in Gnuplot zu visualisieren, übergibt man statt einer Funktion den Dateinamen an plot:

set style data lines
plot "metalle" using 1:2, "metalle" using 1:3

Mit dem Zusatz using weist man plot an, welche Spalten es für x- und y-Werte verwenden soll. Vor dem plot-Befehl steht noch die Anweisung, Daten als klassisches Liniendiagramm (lines) zu plotten. Das Programm kennt zudem diverse andere Diagrammtypen. help style verrät dazu mehr. Die im Geschäftsbereich populären Tortendiagramme lassen sich nicht ohne Weiteres generieren. Wer das Programm dazu zweckentfremden möchte, findet im Internet weitere Informationen (siehe „Alle Links“).

Eingeweihte erkennen die Unterschiede zwischen Gold und Silber im Diagramm sofort. Edelmetall-Neulinge würden sich über eine Legende freuen, die weitere Informationen über die gezeigten Größen enthält. Sie lässt sich mit set key aktivieren, danach muss Gnuplot über den plot-Befehl erfahren, welche Labels die einzelnen Kurven erhalten. Dafür sorgt das Schlüsselwort title. Schreibfaule finden übrigens eine Reihe von Wegen, Kommandos zu verkürzen. Es reicht aus, Schlüsselwörter lediglich so weit zu schreiben, bis sie eindeutig erkannt werden können. Liest man zum zweiten Mal aus der gleichen Datei, versteht Gnuplot das anhand leerer Anführungszeichen. Folgende Kommandos erzeugen den gleichen Plot wie vorher, ergänzt um eine Legende:

set key
p "metalle" u 1:2 title "Gold", "" u 1:3 t 
 "Silber"

Zur Automatisierung können Nutzer ihre Befehlsfolgen in Dateien ablegen. Gnuplot lädt sie, wenn sie als Parameter auf der Kommandozeile mit angegeben werden: gnuplot skript.

Vielfältige Ausgabe

Für die Ausgabe bietet sich eine Reihe von Formaten an – in Gnuplot-Jargon spricht man von Terminals. Die bisher verwendete direkte Ausgabe am Bildschirm läuft unter Linux über das x11-Terminal oder bei neueren Versionen über das Qt-basierte wxt. Die volle Liste der vorhandenen Varianten verrät set terminal. Als Bitmap-Grafik etwa exportiert das Terminal png. Zum Export in PDF bietet sich der Umweg über postscript mit anschließender Konvertierung an oder – in neueren Versionen – der direkte Export über pdfcairo. Allen gemein ist, dass der Festlegung des Typs (mit eventuellen Parametern) eine Ausgabeumleitung in die Zieldatei folgt. Dann kommt der plot-Befehl und zuletzt muss man die Ausgabedatei schließen:

set terminal png size 640,480 enhanced
set output 'Metalle.png'
set key
plot "metalle" u 1:2 t "Gold", 
 "" u 1:3 t "Silber"
set output

Gnuplot bietet einen immensen Funktionsumfang. Die Beispiele hier zeigen nur einen winzigen Bruchteil seiner Fähigkeiten. Wer sich beim Kodieren einer eigenen Visualisierungslösung ertappt, sollte Gnuplot in Betracht ziehen: Es ist sehr wahrscheinlich, dass die benötigten Funktionen dort schon vorhanden sind. (jab)