Übersicht
Einstieg und Anwendung
Spezialgebiete
Software
Diverses
Vorlagen
Über das Projekt
Übersicht
Einstieg und Anwendung
Spezialgebiete
Software
Diverses
Vorlagen
Über das Projekt
Dies ist eine alte Version des Dokuments!
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.
gnuplot
.
Das Installationsprogramm für Windows kann von der gnuplot Download Seite bzw. der dort verlinkten Sourceforge Seite heruntergeladen werden.
Damit das Programm später auch von der Kommandozeile leichter verfügbar ist, sollten Sie während der Installation den Punkt „Andwendungsverzeichnis dem Suchpfad PATH hinzufügen“ aktivieren (siehe Screenshot rechts)
Nach der Installation können Sie das Programm entweder aus dem Startmenü oder über die Eingabeaufforderung mittels gnuplot
starten. Im ersten Fall erhalten Sie eine grafische Oberfläche, in dem viele der hier beschriebenen Befehle auch über ein Menü verfügbar sind.
Man kann jedoch bei Verwendung dieser Oberfläche leicht den Überblick verlieren, welche Einstellungen gerade aktiv sind. Wir raten deshalb zur Verwendung eines Text-Editors (außer den klassischen Editoren vim und emacs unterstützt z.B. noch jEdit die Syntaxhervorhebung von gnuplot-Dateien).
Unter Mac OS X installieren Sie gnuplot am besten über eine der bekannten Paketdistributionen wie MacPorts, Fink oder Homebrew, wobei wir nur mit ersterem Erfahrungen haben.
Unter MacPorts sollte ein einfaches
sudo port install gnuplot
ausreichen.
Unter Linux nutzen Sie einfach den Paketinstallations-Mechanismus Ihrer Distribution. Unter Debian/Ubuntu und verwandten Systemen sollte das Paket gnuplot
verfügbar sein, das z.B. mit Hilfe des Befehls
sudo apt-get install gnuplot
installiert werden kann.
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:
plot
Befehl plottet eine Funktion oder Datenpunkte aus einer Datei in zwei Dimensionen (splot
wird für Projektionen von 3D Plots verwendet).
plot
Befehl werden mittels set
verschiedenste Einstellungen getroffen. Hier sind dies folgende:
pdf
gesetzt, d.h. gnuplot erzeugt direkt eine .pdf-Datei als Ausgabe
beispiel1.pdf
gesetzt
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:
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
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.
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)
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 linespoints linetype 1 linewidth 4 linecolor rgb "blue" pointtype 4 pointsize 1.5 pointinterval 19, \ 0.7*cos(x) title "Strom" with linespoints linetype 2 linewidth 3 linecolor rgb "#ff0000" pointtype 6 pointsize 1.5 pointinterval 19
Dieser Plot-Befehl ist nun schon etwas komplizierter. Zerlegen wir ihn Schritt für Schritt:
0.9*sin(x+5)
ist die erste Funktion die wir zeichnen wollen. gnuplot kennt sehr viele mathematische Funktionen und Operatoren, die an jene von C/Fortran/BASIC/Pascal angelehnt sind. Im einfachen Fall (explizite Darstellung einer zweidimensionalen Funktion ist immer x die unabhängige Variable. Die vollständige Liste der Operatoren und Funktionen finden Sie auf Seite 25 der Dokumentation.
Nach der Funktion geben wir mitels title “<Titel>„
den Titel dieser Funktion für die Legende an
Nach with
beginnen die Angaben für die Formatierung. Wieder gibt es viele verschiedene Zeichenstile. Die wichtigsten sind:
lines
: eine Linie (durchgezogen oder strichliert/punktiert, je nach Linienstil) wird gezeichnet
points
: nur Markierungspunkte werden gezeichnet
linespoints
: beides (Linie und Punkte) werden gezeichnet
Die weiteren Angaben bedeuten:
linetype 1
: Linienstil Nr. 1 (durchgezogene Linie)
linewidth 4
: Liniendicke 4
linecolor rgb „blue“
: Linienfarbe blau
pointtype 4
: Markierungspunkt Nr. 4 (offenes Quadrat)
pointinterval 19
: Jeden 19. Punkt markieren
Danach sehen wir ein Komma (,
) – damit können wir eine zweite (oder auch mehrere) Funktionen in ein Diagramm zeichnen. Da die Befehle relativ lang sind, können wir sie umbrechen, indem wir als letztes Zeichen in einer Zeile einen Backslash (\
) notieren und den Befehl in der nächsten Zeile fortsetzen.
\
darf danach kein anderes Zeichen in der selben Zeile eingetippt werden (auch kein Leerzeichen!). Weiters dürfen keine Leerzeilen oder auskommentierte Zeilen (# …
) vor der nächsten relevanten Zeile stehen.
Die zweite Funktion 0.7*cos(x)
ist ähnlich aufgebaut. Da hier die Formatierung with points
verwendet wird, geben wir mittels pointtype 2
und pointsize 1
an, welche Markierungspunkte verwendet werden sollen und wie groß diese sind.
set terminal xy
) abhängt. Sämtliche Linienstile, Farben, Dicken können bei der Verwendung von verschiedenen Terminals komplett unterschiedlich aussehen.
Eine Übersicht über die Fähigkeiten und vordefinierten Stile eines Terminals kann man sich mit Hilfe des test
Befehls verschaffen. Zur Demonstration hier der entsprechende Output für das hier verwendete pdf
Terminal, sowie als (zugegebenermaßen extrem konträres) Beispiel jenes des dumb
Terminals:
Und hier nochmals das Ergebnis unseres gnuplot scripts und die gesamte Datei zum Herunterladen: