spezial:gnuplot

Dies ist eine alte Version des Dokuments!


gnuplot

gnuplot ist ein Programm zum Erstellen von mathematischen Graphen verschiedenster Art:

gnuplot ist ein sehr altes Programm – es wird seit 1986 entwickelt und ist damit annähernd so alt wie TeX selbst. gnuplot verfolgt auch ein ähnliches Konzept: man schreibt eine Eingabedatei in reinem Text (plain text), „kompiliert“ diese mit dem Programm gnuplot und erhält den Graphen als Ausgabedatei. gnuplot kann viele verschiedene Dateitypen (Grafikformate) als Ausgabe erzeugen – und unter anderem arbeitet es auch gut mit LaTeX zusammen wenn man es richtig verwendet.

Es gibt auch einen interaktiven Modus und verschiedene grafische Oberflächen für gnuplot. Im Sinne einer leichten Reproduzierbarkeit einer Grafik empfehlen wir jedoch trotzdem die direkte Verwendung eines Eingabescripts und des Befehls gnuplot

Trotz seines Alters ist gnuplot keineswegs VERaltet, sondern wird immer noch verwendet um hochpräzise und flexible Graphen, insbesondere für wissenschaftliche Arbeiten, zu erzeugen. Auch die Zeichenbibliothek TikZ unterstützt die Verwendung von gnuplot

gnuplot ist ein sehr umfangreiches Programm, weshalb wir in diesem Tutorial unmöglich auf alle Features eingehen können. Für alles weitergehende müssen wir auf die offizielle gnuplot Dokumentation (PDF, ca. 240 Seiten, englisch) verweisen, die leider nur auf Englisch verfügbar ist.

Installation

Dieser Abschnitt fehlt noch: FIXME

Der erste Graph

Wir starten mit einem sehr einfachen Graphen: wir wollen die Funktion sin(x) im Bereich von 2 bis 2π darstellen und als PDF-Datei ausgeben.

Wir starten dazu einen beliebigen Texteditor (Sie können auch Ihren LaTeX-Editor verwenden) und geben folgende Zeilen ein:

set terminal pdf
set output 'beispiel1.pdf'
 
set xrange [0 : 2*pi]
set yrange [-1 : 1]
 
plot sin(x)

Diese Datei speichern wir unter dem Namen beispiel1.gnu in einem beliebigen Verzeichnis ab (am besten in einem Unterverzeichnis „grafiken“ oder „figures“ in Ihrem LaTeX-Projekt„). Danach starten wir eine Konsole (Terminal, Eingabeaufforderung) und wechseln in dieses Verzeichnis.

cd pfad/zum/verzeichnis
gnuplot beispiel1.gnu

Wenn alles funktioniert hat und Sie sich nicht vertippt haben, sollte danach im selben Verzeichnis die Datei beispiel1.pdf zu finden sein, die wie folgt aussieht:

An dieser einfachen Datei sehen wir bereits den grundsätzlichen Aufbau und wichtigsten Befehle eines gnuplot scripts:

  • Der plot Befehl plottet eine Funktion oder Datenpunkte aus einer Datei in zwei Dimensionen (splot wird für Projektionen von 3D Plots verwendet).
  • Vor dem plot Befehl werden mittels set verschiedenste Einstellungen getroffen. Hier sind dies folgende:
    • Der Terminal-Typ wird auf pdf gesetzt, d.h. gnuplot erzeugt direkt eine .pdf-Datei als Ausgabe
    • Der Ausgabedateiname (output) wird auf beispiel1.pdf gesetzt
    • Die Bereiche für die x-Achse und y-Achse werden auf 0 bis 2π und -1 bis 1 gesetzt

Achsen-Formatierungen

Bei Graphen von Winkelfunktionen zeichnet man die Achsen üblicherweise durch die Nulldurchgänge und markiert auf der x-Achse Vielfache von π. Dies können wir mit den folgenden Einstellungen erreichen:

set border 0
set xzeroaxis 
set yzeroaxis 
 
set xtics axis -pi, pi/2, 2*pi
set ytics axis -1, 0.5, 1
 
set format x "%.1P pi"

Die Befehle im Einzelnen:

  • border steuert die äußeren Rahmenlinien des Graphen, wobei man alle vier Linien einzeln steuern kann, indem man die folgenden Werte für die gewünschten Linien aufsummiert und als Argument angibt:
    • 1 = untere Rahmenlinie
    • 2 = linke Rahmenlinie
    • 4 = obere Rahmenlinie
    • 8 = rechte Rahmenlinie
      d.h. 3 wäre beispielsweise die notwendige Angabe für Rahmenlinien links und unten. In unserem Fall geben wir 0 an, weil wir die Achsen später in den Nulldurchgang legen wollen.
  • set xzeroaxis und set yzeroaxis erledigen genau dies
  • Die Achsenmarkierungen legen wir mittels xtics axis und ytics axis ebenfalls auf die neuen Achsen. Weiters geben wir den Bereich sowie die Häufigkeit der Markierungen als <Beginn>,<Schrittweite>,<Ende> an.
  • Die Beschriftungen auf der x-Achse können wir außerdem mittels set format x formatieren. Der String “%.1P pi„ gibt an, dass die Zahl in Vielfachen von π mit einer Nachkommastelle und danach die Zeichen „pi“ ausgegeben werden soll.

Damit sieht unser Graph folgendermaßen aus: (Sie können hier die gesamte gnuplot-Datei downloaden)

Mehrere Funktionen zeichnen und formatieren

Natürlich können wir in gnuplot auch mehrere Funktionen (für Datenpunkte siehe unten) in ein Diagramm zeichnen. Außerdem stehen verschiedenste Formatierungsbefehle zur Verfügung um die Linien/Datenpunkte zu beeinflussen.

Wir wollen nun zwei etwas komplizierte Winkelfunktionen zeichnen:

plot 0.9*sin(x+0.5) title "Spannung" with lines linetype 1 linewidth 4 linecolor rgb "blue", \
     0.7*cos(x) title "Strom" with points linetype 2 linewidth 3 linecolor rgb "#ff0000" pointtype 2 pointsize 1

Dieser Plot-Befehl ist nun schon etwas komplizierter. Zerlegen wir ihn Schritt für Schritt:

spezial/gnuplot.1362753516.txt.gz · Zuletzt geändert: 08.03.2013 15:38 von tquaritsch