GnuPlot

GnuPlot ist ein kommandozeilenorientiertes und interaktives wissenschaftliches Plotprogramm, welches die Möglichkeit gibt, Daten und Funktionen graphisch darzustellen. Dabei können neben x-y-Diagrammen ebenso 3D-Diagramm gezeichnet werden und in verschiedene Ausgabeformate gespeichert werden. GnuPlot ist für verschiedene Betriebssysteme und Architekturen als Quelltext verfügbar, zu beziehen unter http://www.gnuplot.info. Für Windows, DOS und OS/2 stehen auch fertig kompilierte Binaries zur Verfügung.

Erster Start

GnuPlot wird an der Kommandozeile gestartet und begrüßt einem mit dem Prompt

[cce lang=’gnuplot‘ line_numbers=’false‘]gnuplot>[/cce]

an dem die Kommandos zum Zeichnen eines Graphen angegeben werden können. Alternativ können die Kommandos in einer Datei abgelegt werden und in GnuPlot geladen werden, entweder GnuPlot mit dem Namen der Datei aufrufen (z.B. [cci]gnuplot test.gplt[/cci] um die Kommandos aus [cci]test.gplt[/cci] zu laden) oder am Prompt über

[cce‘ lang=’gnuplot‘ line_numbers=’false‘]gnuplot> load „test.gplt“[/cce]

GnuPlot-Kommandos

Einstellungen ändern

Graph formatieren

Achsen beschriften

Für die Achsenbeschriftung stehen die Kommandos 1):

  • [cci lang=’gnuplot‘]set xlabel ‚text'[/cci]: Beschriftung der X-Achse
  • [cci lang=’gnuplot‘]set ylabel ‚text'[/cci]: Beschriftung der Y-Achse
  • [cci lang=’gnuplot‘]set title ‚text'[/cci]: Beschriftung des Diagramms (Diagramm-Titel)

Tickseinstellung auf den Achsen

Hauptticks

Die beschrifteten Hauptticks können über die u.a. [cci]set[/cci]-Kommandos eingestellt werden. Als Parameter für die Einstellung der Hauptticks ist die folgende Syntax möglich:
[cce lang=’bnf‘]
parameter := {axis | border} {{no}mirror} {{no}rotate {by }}
{ autofreq
| ;
| , {,}
| ({„

  • [cci lang=’gnuplot‘]set xtics[/cci]: Setzten der Einstellungen der Hauptticks für die X-Achse
  • [cci lang=’gnuplot‘]set ytics[/cci]: Setzten der Einstellungen der Hauptticks für die Y-Achse
  • [cci lang=’gnuplot‘]set ztics[/cci]: Setzten der Einstellungen der Hauptticks für die Z-Achse
  • [cci lang=’gnuplot‘]set x2tics[/cci]: Setzten der Einstellungen der Hauptticks für die X2-Achse
  • [cci lang=’gnuplot‘]set y2tics[/cci]: Setzten der Einstellungen der Hauptticks für die Y2-Achse
  • [cci lang=’gnuplot‘]set cbtics[/cci]: Setzten der Einstellungen der Hauptticks für die CB-Achse
Beschreibung der Parameter
  • [cci lang=’gnuplot‘]axis[/cci]: Ticks werden an der Achse gesetzt;
  • [cci lang=’gnuplot‘]border[/cci]: Ticks werden am Rand gesetzt;
  • [cci lang=’gnuplot‘]{no}mirror[/cci]: [cci]mirror[/cci] setzt unbeschriftete Ticks an der selben Position auf dem gegenüberliegenden Rand, [cci]nomirror[/cci] setzt diese nicht;
  • [cci lang=’gnuplot‘]{no}rotate {by}[/cci]: [cci]rotate[/cci] dreht die Beschriftung um 90° oder um die Gradzahl, die mit [cci]{by}[/cci] angegeben wurde (wird nicht von allen Terminaltypen unterstützt); [cci]norotate[/cci] unterbindet die Drehung.
Unterticks

Die [ccie]<freq>[/ccie] ist die Anzahl der Subintervals zwischen den Hauptticks (nicht die Anzahl der Unterticks). Wird [cci]default[/cci] angegeben, wird zum Standardwert gewechselt, für lineare Achsen ist dies 2 oder 5 in Abhängigkeit der Hauptticks.

  • [cci lang=’gnuplot‘]set mxtics {| default}[/cci]: Setzt die Unterticks-Einstellung für die X-Achse
  • [cci lang=’gnuplot‘]set mytics {| default}[/cci]: Setzt die Unterticks-Einstellung für die Y-Achse
  • [cci lang=’gnuplot‘]set mztics {| default}[/cci]: Setzt die Unterticks-Einstellung für die Z-Achse
  • [cci lang=’gnuplot‘]set mx2tics {| default}[/cci]: Setzt die Unterticks-Einstellung für die X2-Achse
  • [cci lang=’gnuplot‘]set my2tics {| default}[/cci]: Setzt die Unterticks-Einstellung für die Y2-Achse
Ticks als Monatsnamen

Sollen die Achsen mit Monatsnamen beschriftet werden, so kann dies über die nachfolgenden Kommandos eingestellt werden. Dabei werden die Zahlen 1-12 zu den Monaten Jan-Dez umgewandelt. Überläufe werden mittels Modulo 12 auf einen gültigen Wert umgerechnet.

  • [cci lang=’gnuplot‘]set xmtics[/cci]: Setzt die X-Achsen Ticks auf Monatsdarstellung
  • [cci lang=’gnuplot‘]set ymtics[/cci]: Setzt die Y-Achsen Ticks auf Monatsdarstellung
  • [cci lang=’gnuplot‘]set zmtics[/cci]: Setzt die Z-Achsen Ticks auf Monatsdarstellung
  • [cci lang=’gnuplot‘]set x2mtics[/cci]: Setzt die X2-Achsen Ticks auf Monatsdarstellung
  • [cci lang=’gnuplot‘]set y2mtics[/cci]: Setzt die Y2-Achsen Ticks auf Monatsdarstellung
  • [cci lang=’gnuplot‘]set cbmtics[/cci]: Setzt die Farbenboxachsen Ticks auf Monatsdarstellung

Diagramm-Ränder

Die Diagramm-Ränder werden automatisch berechnet, für eine Feineinstellung können die folgenden Einstellungen verändert werden.

  • [cci lang=’gnuplot‘]set tmargin {}[/cci]: setzt den oberen Rand
  • [cci lang=’gnuplot‘]set bmargin {}[/cci]: setzt den unteren Rand
  • [cci lang=’gnuplot‘]set lmargin {}[/cci]: setzt den linken Rand
  • [cci lang=’gnuplot‘]set rmargin {}[/cci]: setzt den rechten Rand
  • [cci lang=’gnuplot‘]show margin[/cci]: zeigt die aktuellen Werte für die Ränder an

Die Einheit für [ccie]<margin>[/ccie] sind Zeichenhöhe bzw. Zeichenbreite. Ein positiver Wert setzt die absolute Größe des Randes, ein negativer Wert (oder kein Wert) setzt diesen Rand wieder auf die automatische Einstellung. Bei 3D-Plots zeigt nur die Einstellung des linken Randes Wirkung.

Achsen formatieren

Automatische Skalierung der Achsen

Die automatische Skalierung der Achsen wird über die Einstellung [cci]autoscale[/cci] eingestellt. Dies kann individuell für die Achsen [cci]x[/cci], [cci]y[/cci], [cci]z[/cci], [cci]cb[/cci], [cci]x2[/cci], [cci]y2[/cci] oder [cci]xy[/cci] durchgeführt werden, das Standardverhalten ist die Einstellung für alle Achsen.

Werden Schlüsselwörter [cci]min[/cci] oder [cci]max[/cci] angefügt (dies ist nicht mit der Achse [cci]xy[/cci] möglich), so wird nur das Minimum bzw. das Maximum autoskaliert. Mit den Schlüsselwörtern [cci]fixmin[/cci], [cci]fixmax[/cci] oder [cci]fix[/cci] wird die Erweiterung des Achsenbereiches auf die nächste Tic-Marken Position unterbunden.

GnuPlot-Operatoren

Einseitige Operatoren

Symbol Beispiel Beschreibung
[cci]-[/cci] [cci]-a[/cci] einseitiges Minus
[cci]+[/cci] [cci]+a[/cci] einseitiges Plus
[cci]~[/cci] [cci]~a[/cci] Einer-Komplement
[cci]![/cci] [cci]!a[/cci] logische Negation
[cci]![/cci] [cci]a![/cci] Fakultät
[cci]$[/cci] [cci]$3[/cci] Argumenten-/Spalten-Aufruf in [cci]using[/cci]-Manipulationen

Zweiseitige Operatoren

Symbol Beispiel Beschreibung
[cci]**[/cci] [cci]a**b[/cci] Potenzierung
[cci]*[/cci] [cci]a*b[/cci] Multiplikation
[cci]/[/cci] [cci]a/b[/cci] Division
[cci]%[/cci] [cci]a%b[/cci] Modulo
[cci]+[/cci] [cci]a+b[/cci] Addition
[cci]-[/cci] [cci]a-b[/cci] Subtraktion
[cci]==[/cci] [cci]a==b[/cci] Gleichheits-Operator
[cci]!=[/cci] [cci]a!=b[/cci] Ungleichheits-Operator
[ccie]<[/ccie] [ccie]a kleiner-Operator
[ccie]<=[/ccie] [ccie]a<=[/ccie] kleinergleich-Operator
[ccie]>[/ccie] [ccie]a>b[/ccie] Größer-Operator
[ccie]>=[/ccie] [ccie]a>=b[/ccie] Größergleich-Operator
[ccie]&[/ccie] [ccie]a&b[/ccie] Bitweiser UND-Operator
[cci]^[/cci] [cci]a^b[/cci] Bitweises Exklusiv-ODER
[cci]|[/cci] [cci]a|b[/cci] Bitweises Inklusiv-ODER
[ccie]&&[/ccie] [ccie]a&&b[/ccie] Logisches UND
[cci]||[/cci] [cci]a||b[/cci] Logisches ODER

Die Operatoren Modulo ([cci]%[/cci]), die Bitoperatoren ([ccie]&[/ccie], [cci]^[/cci], [cci]|[/cci]) und die logischen Operatoren ([ccie]&&[/ccie] und [cci]||[/cci]) verlangen als Argumente Werte vom Integertyp. Logisches UND und logisches ODER evaluieren das zweite Argument nur, wenn es benötigt wird.

Dreiseitige Operatoren

Als ternärer Operatoren wird der If-Then-Else-Operator ([cci]?:[/cci]) einzig unterstützt und besitzt das selbe Verhalten wie in C.

Symbol Beispiel Beschreibung
[cci]?:[/cci] [cci]a?b:c[/cci] Ternärer If-Then-Else-Operator2)

GnuPlot-Funktionen

Alle GnuPlot-Funktionen akzeptieren als Argument Ganzzahlen, reelle oder komplexe Zahlen – außer, es ist etwas anderes angegeben. Bei denjenigen Funktionen, die Winkelwerte als Argument benötigen oder diese zurückgeben, können diese als Radian oder Grad angegeben werden. Der Standardwerte hierfür ist Radian und kann über das Kommando [cci]angles[/cci] geändert werden.

abs(x) absoluten Wert des Argumentes; der Rückgabewert ist vom selben Typ wie die des Arguments, für komplexe Argumente ist [cci lang=’gnuplot‘]abs(x)[/cci] definiert als die Länge von [cci lang=’gnuplot‘]x[/cci] in der komplexen Ebene [z.B. [cci lang=’gnuplot‘]sqrt(real(x)^2 + imag(x)^2)[/cci]]
acos(x) inverser Cosinus in Radian oder Grad
acosh(x) inverser hyperbolischer Cosinus in Radian
arg(x) gibt die Ebene einer komplexen Zahl in Radian oder Grad zurück
asin(x) inversen Sinus in Radian oder Grad
asinh(x) inverser hyperbolischer Sinus in Radian
atan(x) inverser Tangens in Radian oder Grad
atan2(y,x) inverser Tanges vom Verhältnis der beiden reellen Teile der Argumente
atanh(x) inverser hyperbolischer Tangens
besj0(x) j0 Bessel-Funktion, Argumente müssen in Radian sein
besj1(x) j1 Bessel-Funktion, Argumente müssen in Radian sein
besy0(x) y0 Bessel-Funktion, Argumente müssen in Radian sein
besy1(x) y1 Bessel-Funktion, Argumente müssen in Radian sein
ceil(x) kleinster Integer-Wert, der nicht kleiner wie das übergebene Argument ist; bei komplexen Argumenten wird der kleinste Integer-Wert zurückgegeben, der nicht kleiner wie der reelle Anteil des Arguments ist;
cos(x) Cosinus in Radian oder Grad
cosh(x) hyperbolischer Cosinus in Radian oder Grad
erf(x) Fehler-Funktion des reellen Anteils vom Argument; ist das Argument eine komplexe Zahl, so wird der imaginäre Anteil ignoriert (siehe auch [cci]erfc[/cci], [cci]inverf[/cci] und [cci]norm[/cci])
erfc(x) Gibt 1.0 zurück, die Fehler-Funktion des reellen Anteils vom Argument; ist das Argument eine komplexe Zahl, so wird der imaginäre Anteil ignoriert (siehe auch [cci]erf[/cci], [cci]inverf[/cci] und [cci]norm[/cci])
exp(x) Exponential-Funktion; in manchen Implementationen, gibt [cci]exp(-x)[/cci] für sehr große [cci lang]x[/cci] einen undefinierten Wert zurück. Eine benutzerdefinierte Funktion wie [cci]safe(x) = x?100 ? 0 : exp(x)[/cci] kann hier abhilfe schaffen
floor(x) größte Integer-Wert, der nicht görßer wie das übergebene Argument ist; bei komplexen Argumenten wird der größte Interger-Wert zurückgegeben, der nicht größer wie der reelle Anteil des Arguments ist;
gamma(x) Gamma-Funktion des reellen Anteils des Arguments; für den Interger-Wert [cci lang=’gnuplot‘]n[/cci] ist [cci]gamma(n+1) = n![/cci]
ibeta(p,q,x) unvollständige Beta-Funktionen des rellen Anteils der Argumente; die Argumente dürfen dabei die Schranken [ccie]q>0[/ccie] und [cci]x[/cci] im Intervall [cci][0:1][/cci] nicht überschreiten
inverf(x) Gibt die inverse Fehler-Funktion des reellen Anteils vom Argument zurück. Siehe auch [cci]erf[/cci] und [cci]invnorm[/cci]
igamma(a,x) unvollständige Gamma-Funktion der reellen Anteile der Argumente. Voraussetzungen sind [ccie]a > 0[/ccie] und [ccie]x >= 0[/ccie].
imag(x) Gibt den imaginären Anteil des Arguments als reelle Nummer zurück.
invnorm(x) Inverse Normalverteilungsfunktion der reellen Anteile des Arguments. Siehe auch [cci]norm[/cci]
int(x) Integer-Funktion
lambertw(x) Lambert’s W Funktion, definiert über die Gleichung [cci]z=(W(z)*exp(W(z))[/cci] mit [cci]z[/cci] einer reellen Zahl und [ccie]z >= -exp(-1)[/ccie].
lgamma(x) Natürlicher Logarithmus der Gamma-Funktion der rellen Anteile des Arguments
log(x) Natürlicher Logarithmus (zur Basis e)
log10(x) Logarithmus zur Basis 10
norm(x) Gaußsche Normalverteilung der reellen Anteils vom Argument. Siehe auch [cci]invnorm[/cci], [cci]erf[/cci] und [cci]erfc[/cci]
rand(x) [cci]rand(0)[/cci] erzeugt eine Pseudozufallszahl im Interval [cci][0:1][/cci] vom den aktuellen Wert der beiden internen 32-Bit Zustände. [cci]rand(-1)[/cci] setzt die beiden internen Zustände zurück auf einen Standard-Wert. [cci]rand(x)[/cci] mit [ccie]x>0[/ccie] setzt die beiden internen Zustände auf einen Wert basierend auf [cci]x[/cci]. [cci]rand({x,y})[/cci] für [ccie]x>0[/ccie] setzt den Zustand 1 auf [cci]x[/cci] und Zustand 2 auf [cci]y[/cci].
real(x) Reellen Anteil vom Argument
sgn(x) Gibt das Vorzeichen des reellen Anteils vom Arguments zurück. Rückgabewert ist [cci]1[/cci], wenn das Argument positiv ist, [cci]-1[/cci], wenn das Argument negativ und [cci]0[/cci], wenn das Argument 0 ist
sin(x) Sinus in Radian oder Grad
sinh(x) hyperbolischer Sinus in Radian oder Grad
sqrt(x) Quadratwurzel
tan(x) Tangens in Radian oder Grad
tanh(x) hyperbolischer Tangens in Radian oder Grad

Weitere Funktionen, die für die Manipulation und Darstellung von Daten verwendet werden können, aber keine mathematischen Funktionen sind.

column(x) kann nur in Ausdrücken als Teil der [cci]using[/cci]-Manipulationen verwendet werden; siehe auch [cci]using[/cci]
defined(x) gibt [cci]1[/cci] zurück, wenn die Variable [cci]x[/cci] definiert ist, ansonsten [cci]0[/cci]
tm_hour(x) interpretiert das Argument als eine Zeit in Sekunden seit dem 1. Jan. 2000 und gibt die Stunden im Bereich 0-23 als eine reelle Zahl zurück
tm_mday(x) interpretiert das Argument als eine Zeit in Sekunden seit dem 1. Jan. 2000 und gibt den Tag im Monat im Bereich 1-31 als eine reelle Zahl zurück
tm_min(x) interpretiert das Argument als eine Zeit in Sekunden seit dem 1. Jan. 2000 und gibt die Minuten im Bereich 0-59 als eine reelle Zahl zurück
tm_mon(x) interpretiert das Argument als eine Zeit in Sekunden seit dem 1. Jan. 2000 und gibt den Monat im Bereich 0-11 als eine reelle Zahl zurück
tm_sec(x) interpretiert das Argument als eine Zeit in Sekunden seit dem 1. Jan. 2000 und gibt die Sekunden im Bereich 0-59 als eine reelle Zahl zurück
tm_wday(x) interpretiert das Argument als eine Zeit in Sekunden seit dem 1. Jan. 2000 und gibt den Wochentag im Bereich 0-6 als eine reelle Zahl zurück
tm_yday(x) interpretiert das Argument als eine Zeit in Sekunden seit dem 1. Jan. 2000 und gibt den Tag im Jahr im Bereich 1-366 als eine reelle Zahl zurück
tm_year(x) interpretiert das Argument als eine Zeit in Sekunden seit dem 1. Jan. 2000 und gibt das Jahr als eine reelle Zahl zurück
valid(x) kann nur in Ausdrücken als Teil der [cci]using[/cci]

Internet-Links

Fußnoten    (↵ returns to text)

  1. wird als Ausgabe LaTeX gewählt, können hier auch LaTeX-Befehle eingegeben werden, die zwar nicht in GnuPlot, jedoch in LaTeX richtig angezeigt werden
  2. Ist das erste Argument ([cci]a[/cci]) wahr, d.h. nicht 0, (dieses muß ein Integer-Wert sein), so wird das zweite Argument ([cci]b[/cci]) evaluiert und zurückgegeben – andernfalls wird das dritte Argument ([cci]c[/cci]) evaluiert und zurückgegeben.
Grace/XmGrace

Grace/XmGrace

Grace/XmGrace ist ein WYSIWYG 2D Plot-Programm für numerische Daten auf X-Windows Systemen und M*tif. Es läuft auf praktisch allen unixartigen Betriebssystemen, zusätzlich […]