Gnuplot Kurzinformation

Was ist gnuplot?

Gnuplot ist ein Programm, um mit Funktionen oder Zahlenkolonnen zwei- und dreidimensionale Kurvendiagramme darstellen zu können. Es arbeitet interaktiv mit Kommandozeileneingaben. Eine Fülle von Ausgabeformaten steht zur Verfügung.

Diese Kurzinfo soll helfen, sich schnell in gnuplot einzuarbeiten. Für die vielen Details sei auf das Onlinehilfesystem oder die Quick-Reference verwiesen, wo wirklich alle Fragen beantwortet werden.

Für welche Rechner gibt es gnuplot?

Die aktuelle Version vom Juni 1993 gibt es für UNIX, VMS, Atari, Amiga, MS-DOS und MS-Windows.

Wie funktioniert gnuplot?

gnuplot kann einfach mit dem Befehl gnuplot gestartet werden. Die Umgebungsvariablen PAGER, GNUTERM und SHELL werden ausgewertet. Findet sich im $HOME-Verzeichnis die Datei .gnuplot, so werden die dort gefundenen Befehle vorher eingelesen.

gnuplot akzeptiert beim Aufruf auch einen File als Parameter und führt die darin enthaltenen Kommandos aus:

	gnuplot bigcalc
Die wichtigsten Kommandos sind plot, load, help, set und show. Dazu kommt noch die Möglichkeit, eigene Funktionen zu definieren.

Der Kommandozeileneditor

Da der plot-Befehl relativ kompliziert aufgebaut ist, erst ein Hinweis auf den Kommandozeileneditor von gnuplot. Um die Eingabe von langen Kommandos zu vereinfachen, kann auf der Kommandozeile wie im emacs in den bisher getippten Kommandos geblättert werden. Fehlerhafte Kommandos können korrigiert und erneut abgesetzt werden:
ctrl-p  vorherige Zeile
ctrl-n  nächste Zeile 
ctrl-b  mit dem Cursor ein Zeichen nach links gehen 
ctrl-f  mit dem Cursor ein Zeichen nach rechts gehen

Selbst definierte Funktionen

Es ist einfach, in gnuplot eigene Funktionen zu definieren.

Beispiel:

gnuplot> f(x) = x**2 + sin(x)
weist der Funktion f mit der abhängigen Variablen x einen bestimmten Funktionsverlauf zu. Alle notwendigen Operatoren (mal, geteilt, modulo usw.) sind bereits vordefiniert. Außer der Sinus-Funktion sind viele weitere Funktionen eingebaut und über "help expressions functions real" zu finden.

Das plot-Kommando

Das Kommando hat sehr viele Optionen. Für 3D-Plots gibt es eine abgewandelte Version, das splot-Kommando. Hier die genaue Syntax:
plot {ranges} { | {"" {using ...}}} {title}
        {style} {,  {title} {style}...}

splot {ranges} { | {"" {index i} {using 
        ...}}} {title} {style} {,  {title} {style}...}
Die Bereichsangabe (range) dient dazu, von einer Funktion nur einen bestimmten XAchsen-Ausschnitt zu berechnen.

Die Angabe einer Funktion ist genauso möglich wie die Angabe einer Datei, aus der Tabellenwerte ausgelesen werden sollen. Es ist auch möglich, externe Programme aufzurufen und deren Ausgabe einzulesen:

plot `< myfilter' using "%f%f" title `Before' with lines
Mit einer Formatangabe nach dem Schlüsselwort using können auch ganz bestimmte Daten aus einer Eingabedatei herausgefiltert werden.

Mit dem Schlüsselwort index kann ein Ausschnitt aus einem Datenfile ausgewählt werden, z.B. um nur eine Kurve anzuzeigen.

Werden mehrere Kurven in dasselbe Diagramm gezeichnet, so kann über das Schlüsselwort title für jede Kurvenfarbe ein Bezeichner in der Legende gewählt werden. splot wird verwendet, um dreidimensionale Kurven zu zeichnen.

Das set-Kommando

Die Ausgabeform der Zeichnung kann in vielerlei Hinsicht den eigenen Wünschen angepasst werden. Dafür gibt es den set-Befehl, der die Werte für die aktuelle Zeichnung festlegt.

Hier einige Beispiele:

terminal
Hiermit kann der Typ des Ausgabegeräts festgelegt werden. Dazu unten mehr.
format
Die Achsenbezeichner können selbst gewählt werden.
x,y,ztics
Die Beschriftungen der Achsenabschnitte können hiermit gewählt werden.
d,mtics
Statt Zahlen können auch automatisch Wochen- oder Monatsbezeichner verwendet werden (Sonntag usw.)
key
Das Zeichnen und der Ort einer Legende kann frei gewählt werden.
title
Die Überschrift über dem Bild kann hiermit gesetzt werden. Bitte nicht mit dem plot title verwechseln.
view
Bei 3D-Graphiken kann der Sichtwinkel eingestellt werden.
label
An jede beliebige Stelle in der Graphik kann ein Text eingefügt werden. Zusammen mit arrow können so Erklärungen in der Graphik erscheinen.
grid
Die Kurve oder das Meßblatt können mit einem Gitter unterlegt werden.

Das show-Kommando

Alle Zustandsparameter können mit dem show-Kommando mit ihrem Wert ausgegeben werden. Das save filename-Kommando gestattet es, alle selbst definierten Funktionen, Variablen und anderen Parameter abzuspeichern. So bleiben auch umfangreiche Definitionen erhalten.

Das load-Kommando

Um solche Bibliotheken wieder zu laden oder z.B. um größere Mengen an Plots automatisch zu erzeugen, gibt es das load filename-Kommando. Die im File enthaltenen gnuplot-Kommandos werden nacheinander ausgeführt.

Ausgabeformate

Eine der herausragenden Funktionen von gnuplot ist die Vielzahl der Gerätetreiber, mit denen Ausgaben erzeugt werden können.

Alle Ausgabeformate werden mit dem Befehl set terminal termtype ausgewählt. Damit gnuplot die Ausgabe in eine Datei und nicht auf den Bildschirm schreibt, muß der Name der Datei vor dem plot-Kommando mit set output filename festgelegt werden.

Postscript ist natürlich möglich. Drei Varianten existieren hierbei. Die Ausgabe kann auf eine normale Seite oder liegend (landscape) erfolgen. Das erzeugte Postscript kann auch als encapsulated Postscript für die Weiterverarbeitung in anderen Graphik-Programmen abgespeichert werden. Auch Farbpostscript kann mit gnuplot erzeugt werden, z.B. für Präsentationsgraphiken. Für die Einbindung in LaTeX sind drei Mechanismen vorgesehen. Am einfachsten ist es, das Ausgabeformat LaTeX zu wählen (siehe das Bild auf der folgenden Seite).

Für die Gestaltung von Logos oder zur einfachen Positionierung im LaTeX-Fließtext ist es auch möglich, die Kurve als Zeichen in einem TeX-Zeichensatz via METAFONT zu definieren. Im Hilfesystem wird unter help set terminal mf detailed genauer erklärt, wie vorzugehen ist. Eine aktuelle TeX-Version ist dazu notwendig.

Mit encapsulated Postscript und dem TeX-Druckertreiber dvips können ebenfalls Graphiken eingebunden werden.

Für FrameMaker-Fans erzeugt die gnuplot-3.4 Version jetzt auch Maker Interchange Format (MIF).

Für die Arbeit am Bildschirm ist die direkte Anzeige über das X11-Fenstersystem sehr bequem (set term x11).

Steht leider gerade kein Terminal mit X11-Fähigkeiten zur Verfügung, so kann eine grobe Näherung über den Terminaltyp dumb betrachtet werden.

Soll nur die Normierung und Positionierung der Punkte in einem Datenfeld durch gnuplot genutzt werden, so kann mit dem Ausgabetyp table eine Tabelle erzeugt werden, die von weiteren Programmen als Eingabe wiederverwendet werden kann.

Diese Aufzählung ist keinesfalls vollständig. Für weitere Formate sei auf den Eintrag zu set terminal im Hilfesystem verwiesen.

Das Hilfe-System

Ein Hilfe-System sollte es dem Benutzer möglichst einfach machen, sich mit einer Software zurecht zu finden. Dies ist gnuplot sehr gut gelungen. Für Hilfe gibt es folglich das Kommando help, welches auch wirklich weiterhilft. Z.B. findet sich unter expression functions real die Liste der eingebauten Funktionen.

comp.graphics.gnuplot

In dieser USENet-Newsgruppe diskutieren die Autoren und viele Anwender das Programm und wie bestimmte Dinge erreicht werden können. Es lohnt sich also, diese Gruppe im Auge zu behalten.

Demos

In gnuplot sind eine Vielzahl von Demonstrationsplots enthalten, u.a. eine Weltkarte oder das 3D-Drahtgittermodell eines Wals. Sie sind in demo oder auf dem Servuscluster im Verzeichnis gnuplot-3.4/lib/demo übergangsweise zu finden.

Wo ist gnuplot installiert ?

Auf dem CHEMnet ist gnuplot als /usr/local/bin/gnuplot installiert. Demos findet man in /usr/local/lib/gnuplot.
nach einem Text von Kurt Jäger (pi@rus.uni-stuttgart.de)

Heiko Schlichting, 7. Oktober 1993