Messdatenvisualisierung klingt zunächst sehr speziell, aber nach kurzer Überlegung finden sich zahllose praktische Anwendungsbeispiele, sei es die Überwachung der Raumtemperatur, die Auswertung von Logfiles oder Darstellung von Börsenkursen. Mit Gnuplot steht dazu seit über zehn Jahren ein Werkzeug zur Verfügung, dessen Kommandozeilen-Interface zwar spartanisch anmutet, aber in Kombination mit Shellskripten und anderen Tools ungeahnte Flexibilität entfaltet.
Für Freunde der Bequemlichkeit gibt es zudem einige grafische Frontends. Dazu gehören Kile[3], ein Latex-Editor mit integriertem Gnuplot-Frontend, und Unignuplot[4]. Hier soll aber die Kommandozeile im Vordergrund stehen, die eine systemunabhängige und automatisierte Verarbeitung von Daten ermöglicht. Gnuplot erlaubt dabei Visualisierungen im zwei- oder dreidimenisionalen Raum und geht auch bei extrem großen Datenmengen nicht in die Knie.
01 set xrange [-150:3800]
02 set xtics ("1980" 0, "1981" 365, "1982" 365*2, "1983" 365*3,
03 "1984" 365*4, "1985" 365*5, "1986" 365*6, "1987" 365*7, "1988" 365*8,
04 "1989" 365*9, "1990" 365*10)
05 set title "Monatstemperaturen [¡C] der Jahre 1981 - 1990"
06 set xlabel "Jahre"
07 set ylabel "Temp. [¡C]"
08 set grid
09 plot 'tempmin.dat' title "min.Temp." with lines,
10 'tempmax.dat' title "max.Temp." with lines
|
Die Kommandozeile
Das Programm hat übrigens nichts mit dem GNU-Projekt der Free Software Foundation zu tun, es handelt sich um eine zufällige Namensgleichheit. Gnuplot ist nicht einmal freie Software oder Open Source im Sinne der Open-Source- Initiative. Es darf zwar modifiziert werden, jedoch ist die Veröffentlichung modifizierter Versionen lediglich in Form von Patches erlaubt.
Nach dem Programmstart durch Eingabe von »gnuplot« bietet sich dem Anwender ein Prompt. Hier werden Gnuplot-spezifische Befehle eingegeben, zum Beispiel »plot cos(x)« zur Darstellung der Kosinusfunktion. Gnuplot öffnet dazu ein separates Fenster und zeichnet darin den Graphen.
Einfache Datensätze
Für die darzustellenden Daten kann es die unterschiedlichsten Quellen geben. Sie können von Messgeräten zur Erfassung physikalischer Größen kommen (etwa Temperatur, Luftdruck, Luftfeuchtigkeit) oder beispielsweise aus dem Internet (etwa Börsendaten). Außerdem ist es möglich, sich virtuelle Messdaten zu schaffen.
Welcher Weg auch immer beschritten wird, die Messdaten liegen grundsätzlich als Messdatensatz vor. Wie im vorigen Absatz erwähnt, erzeugt der Befehl »plot« eine Ausgabe. In diesem einfachen Beispiel wurde dem »plot«-Befehl lediglich eine mathematische Funktion übergeben. Um Messdaten aus einer Datei zu verarbeiten, übergibt man »plot« den Dateinamen als Argument. Das Dateiformat ist dabei extrem simpel: Gnuplot verarbeitet Dateien zeilenweise. Eine Zeile repräsentiert einen Datensatz, der wiederum aus mehreren Spalten bestehen kann. Die Spalten werden durch Tabulatoren oder Leerzeichen voneinander getrennt.
Wenn der Datensatz in der Datei »bsp .dat« als einfache Zahlenkolonne (ein Wert pro Zeile) vorliegt, erfolgt die Darstellung mit Hilfe des Befehls »plot \'bsp.dat\'«. Um Messdaten anders darzustellen, gibt es folgende »style«-Attribute des »plot«-Befehls: »lines«, »points«, »linespoints«, »dots«, »impulses«, »steps«, »fsteps«, »histeps«, »boxes«, »errorbars«, »xerrorbars«, »yerrorbars«, »xyerrorbars«, »boxerrorbars«, »boxxyerrorbars«, »vector«, »financebars«, »candlesticks« (unterschiedliche Darstellungsformen zeigt Abbildung 1). Die Syntax lautet immer: »plot \' Datei\' with Style«
Meist ist es nicht erwünscht, sämtliche Spalten des Datensatzes darzustellen, sondern nur ausgewählte. Beispielsweise kann durch »plot \'bsp.dat\' using 2:3« die zweite und dritte Spalte ausgegeben werden. Im Folgenden soll eine ansprechende Grafik der Monatstemperaturen in Melbourne (Australien) der Jahre 1981 bis 1990 erstellt werden.
Abbildung 1: Hier sind drei unterschiedliche Ausgaben zu sehen, die mit Hilfe des Plot-Befehls (»with points«, »with lines«, »with impulses«) erstellt wurden.