Gnuplot

Aus Mikiwiki
Version vom 7. Februar 2010, 17:24 Uhr von Michi (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Gnuplot ist ein Funktionenplotter, der zwei- oder dreidimensionale grafische Darstellungen Funktionen und Daten erzeugt.

Installation

Ubuntu

$ sudo apt-get install gnuplot

Optionen

Terminals

Mögliche Terminals sind die folgenden.

Terminal Funktion
corel CorelDRaw-Zeichnung
gif GIF-Bild
latex LaTeX-Quelltext. Dabei kann auch der Schrifttyp und die Grösse der Achsenbeschriftung eingestellt werden. Mit "set terminal latex roman 12" wird die Ausgabe auf die Serifenschrift "(Times) Roman" in Schriftgrösse 12 Punkt umgestellt.
pdf PDF-Datei
png PNG-Bild. Mit "set terminal size 200,300" kann die Grösse des Bildes (Höhe, Breite) in Pixeln eingestellt werden.
postscript Postscript-Datei
x11 Ausgabe im X-Window-Fenster

Eine detaillierte Übersicht aller Terminals mit ihren Parametern findet sich in der Gnuplot-Dokumentation.

Mathematische Funktionen

Gnuplot beherrscht alle mathematischen Funktionen, die in der Programmiersprache C bekannt sind, sind unter anderen die folgenden.

Funktion Zweck
cos(x) Cosinus
sin(x) Sinus
tan(x) Tangens

Diagrammdarstellung

Modus Funktion
with points Darstellung in Punktform (Standarddarstellung).
with lines Darstellung in Punktform, wobei die Punkte durch Linien verbunden werden.
with filledcurves Darstellung in Punktform, wobei die Punkte durch Linien verbunden und die entstehenden Flächen gefüllt werden.
with boxes Darstellung in Balkenform.
with impulse Darstellung als senkrechte Linien für jeden Datenpunkt.
with filledcurves Darstellung als gefüllte Flächen.
with Anzeige aller Optionen.

Gnuplot erkennt automatisch, ob es genügend Spalten für einen bestimmten Modus gibt. Enthält eine Quelldatei mehr als zwei Spalten, so wird dem Programm mit "using <spalte1>:<splate2>" mitgeteilt, welche es für die x- und y-Achse verwenden soll. Beispielsweise verwendet "using :2" so die zweite Spalte.

Verwendung

Starten von Gnuplot. Die Meldung "Terminal type set to 'x11'" weist darauf hin, dass für grafische Ausgaben ein X-Window-Fenster benutzt wird.

$ gnuplot
...
Terminal type set to 'x11'
gnuplot>

Öffnen eines Fensters, das den Verlauf der Sinusfunktion anzeigt.

gnuplot> plot sin(x)

Öffnen eines Fensters, das den Verlauf der Sinusfunktion anzeigt. Dabei soll die Ausgabe als Pixelbild in der PNG-Datei "sinus.png" im Heimatverzeichnis des aktuellen Benutzers landen.

gnuplot> set terminal png
Options are 'nocrop medium size 640,480 '
gnuplot> set output "sinus.png"
gnuplot> plot sin(x)

Verlassen von Gnuplot.

gnuplot> exit

Anwendungsbeispiel

Gnuplot eignet sich besonders auch für die Analyse von Daten, die typischerweise in Dateien oder Datenbanken vorliegen. Die folgende Beispieldatei enthält die Zugriffsstatistik einer Webseite, wobei jede Zeile einen Datensatz enthält. Als Spaltentrenner werden von Gnuplot dabei Tabulatoren und Leerzeichen angesehen, kommaseparierte Dateien bereiten Gnuplot Probleme.

$ more weblog.txt
Konqueror_3.4   1
Mozilla_4.0     8
Mozilla_5.0     222
Mozilla_Firefox_1.0     30

Folgender Befehl erzeugt eine Übersicht, wobei "using :2" dafür steht, dass Gnuplot die zweite Spalte auswertet, "title 'Anzahl Zugriffe'" erzeugt die Balkenlegende, "with boxes" legt die Balkenform fest.

gnuplot> plot "tmp/weblog.txt" using :2 title "Anzahl Zugriffe" with boxes

Leider kann Gnuplot die Webbrowsernamen nicht automatisch aus der Datendatei extrahieren, doch lässt sich das mit ein wenig Shell-Programmierung löschen. Ein Skript "weblog.plot" für Gnuplot könnte dann wie folgt aussehen.

set title "Zugriffe mit unterschiedlichen Webbrowsern"
set xlabel "Browser"
set ylabel "Zugriffe"
set xtics rotate ("Konqueror_3.4" 1, "Mozilla_4.0" 2, "Mozilla_5.0" 3, "Mozilla_Firefox_1.0" 3)
set terminal png
set output "weblog.png"
plot "tmp/weblog.txt" using :2 title "Anzahl Zugriffe per Browser" with boxes

Ausführen des Skripts mit Gnuplot und Erzeugen der Datei "~/weblog.png".

gnuplot> load "weblog.plot"

Die Ergebnisdiagramme können je nach Art und Menge der verwendeten Dateien allerdings sehr hässlich bis unbrauchbar aussehen...

Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country US.gif Clark Gaylord eng Gnuplot homepagewbm
Offizielle Homepage
country DE.gif David Völker ger Grundkurs Gnuplotwbm
country US.gif Wikimedia eng Gnuplotwbm
country DE.gif Wikipedia ger Gnuplotwbm Enzyklopädischer Artikel

Alte Weblinks

Herausgeber Sprache Webseitentitel Anmerkungen
country US.gif Los Alamos National Laboratory eng Gnuplotwbm