24

Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Einführung in GNUPLOT

F. Beaujean

30.01.2007

F. Beaujean GNUPLOT

Page 2: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Gliederung

1 Einleitung

2 Fähigkeiten

F. Beaujean GNUPLOT

Page 3: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Geschichte

GNUPLOT ist das plotting programm unter Linux

es gehört nicht zu der GNU software foundation

wird seit 1986 entwickelt und verbessert

neueste Version 4.0 (2004), Entwicklungsversion bei 4.2

F. Beaujean GNUPLOT

Page 4: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Geschichte

GNUPLOT ist das plotting programm unter Linux

es gehört nicht zu der GNU software foundation

wird seit 1986 entwickelt und verbessert

neueste Version 4.0 (2004), Entwicklungsversion bei 4.2

F. Beaujean GNUPLOT

Page 5: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Geschichte

GNUPLOT ist das plotting programm unter Linux

es gehört nicht zu der GNU software foundation

wird seit 1986 entwickelt und verbessert

neueste Version 4.0 (2004), Entwicklungsversion bei 4.2

F. Beaujean GNUPLOT

Page 6: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Geschichte

GNUPLOT ist das plotting programm unter Linux

es gehört nicht zu der GNU software foundation

wird seit 1986 entwickelt und verbessert

neueste Version 4.0 (2004), Entwicklungsversion bei 4.2

F. Beaujean GNUPLOT

Page 7: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verfügbarkeit

Homepage: http://www.gnuplot.info

Sourcecode und vorkompilierte Programme für Linux,Windows ...

läuft (auch) ohne graphische Ober�äche, nur durchKommandozeilen-Befehle oder Skripten

graphische Ober�ächen verfügbar ( selten auf dem neustenStand)

Interfaces für versch. Sprachen ( C, C++, Python ....)

sehr umfangreich dokumentiert, verschiedene Niveaux

F. Beaujean GNUPLOT

Page 8: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verfügbarkeit

Homepage: http://www.gnuplot.info

Sourcecode und vorkompilierte Programme für Linux,Windows ...

läuft (auch) ohne graphische Ober�äche, nur durchKommandozeilen-Befehle oder Skripten

graphische Ober�ächen verfügbar ( selten auf dem neustenStand)

Interfaces für versch. Sprachen ( C, C++, Python ....)

sehr umfangreich dokumentiert, verschiedene Niveaux

F. Beaujean GNUPLOT

Page 9: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verfügbarkeit

Homepage: http://www.gnuplot.info

Sourcecode und vorkompilierte Programme für Linux,Windows ...

läuft (auch) ohne graphische Ober�äche, nur durchKommandozeilen-Befehle oder Skripten

graphische Ober�ächen verfügbar ( selten auf dem neustenStand)

Interfaces für versch. Sprachen ( C, C++, Python ....)

sehr umfangreich dokumentiert, verschiedene Niveaux

F. Beaujean GNUPLOT

Page 10: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verfügbarkeit

Homepage: http://www.gnuplot.info

Sourcecode und vorkompilierte Programme für Linux,Windows ...

läuft (auch) ohne graphische Ober�äche, nur durchKommandozeilen-Befehle oder Skripten

graphische Ober�ächen verfügbar ( selten auf dem neustenStand)

Interfaces für versch. Sprachen ( C, C++, Python ....)

sehr umfangreich dokumentiert, verschiedene Niveaux

F. Beaujean GNUPLOT

Page 11: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verfügbarkeit

Homepage: http://www.gnuplot.info

Sourcecode und vorkompilierte Programme für Linux,Windows ...

läuft (auch) ohne graphische Ober�äche, nur durchKommandozeilen-Befehle oder Skripten

graphische Ober�ächen verfügbar ( selten auf dem neustenStand)

Interfaces für versch. Sprachen ( C, C++, Python ....)

sehr umfangreich dokumentiert, verschiedene Niveaux

F. Beaujean GNUPLOT

Page 12: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verfügbarkeit

Homepage: http://www.gnuplot.info

Sourcecode und vorkompilierte Programme für Linux,Windows ...

läuft (auch) ohne graphische Ober�äche, nur durchKommandozeilen-Befehle oder Skripten

graphische Ober�ächen verfügbar ( selten auf dem neustenStand)

Interfaces für versch. Sprachen ( C, C++, Python ....)

sehr umfangreich dokumentiert, verschiedene Niveaux

F. Beaujean GNUPLOT

Page 13: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Wie funktioniert es?

Aufruf: gnuplot

state machine

Die drei wichtigsten Befehle

set

plot

splot

F. Beaujean GNUPLOT

Page 14: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Was kann es plotten?(1)

2d Plots

Nahezu alle Standard -Funktionen wie x2,sin x , atanx . . .

auch beliebige selbstde�nierte Kombinationen von diesen

implizite Funktionen y (x) ↔ x (y)

2d Daten aus üblichen Textdateien, Filter, �ts . . .

Rohdaten wie Bilder. . .

Beispielbefehle

plot sin(x)

plot �data.dat�

f(x) = 3* x*x

plot f(x)

F. Beaujean GNUPLOT

Page 15: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Was kann es plotten?(1)

2d Plots

Nahezu alle Standard -Funktionen wie x2,sin x , atanx . . .

auch beliebige selbstde�nierte Kombinationen von diesen

implizite Funktionen y (x) ↔ x (y)

2d Daten aus üblichen Textdateien, Filter, �ts . . .

Rohdaten wie Bilder. . .

Beispielbefehle

plot sin(x)

plot �data.dat�

f(x) = 3* x*x

plot f(x)

F. Beaujean GNUPLOT

Page 16: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Beispiel Plot

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

-10 -5 0 5 10

y

x

sin(x)Nötige Befehle

gnuplot> set terminal postscript

enhanced

gnuplot> set output "Sinus"

gnuplot> plot sin(x)

F. Beaujean GNUPLOT

Page 17: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Was kann es plotten?(2)

3d Plots

Standard -Funktionen von zwei Variablen wie y4x2

x2+y2,sin x · y

. . .

selbstde�nierte Kombinationen, auch mit Variablen

implizite Funktionen f (x , y)

3d Daten aus üblichen Textdateien

Fehlerbalken mitdarstellen

Histogramme, Balkendiagramme und sehr viel mehr

F. Beaujean GNUPLOT

Page 18: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Beispiel Plot

0

0.05

0.1

0.15

0.2

0.25

0.3

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

0 0.05

0.1 0.15

0.2 0.25

0.3

U

Potential 0.25 0.2

0.15 0.1

0.05

x

y

U

Nötige Befehle

set terminal X11

set xlabel "x"

set ylabel "y"

set zlabel "U"

set dgrid3d 30,30

set contour base

set pm3d

splot "data.dat" using 1:2:4 with

lines title "Potential

F. Beaujean GNUPLOT

Page 19: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verwendung aus C++(1)

Die Daten sind berechnet

Daten in Spaltenform in Datei schreiben

GNUPLOT mit Skript aufrufen

F. Beaujean GNUPLOT

Page 20: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verwendung aus C++(2)

Examples

#include <fstream>...ofstream file("data.dat");

file< <"# number of iterations: "< <iter< <endl;

file< <"# x"< <"\t"< <"y"< <"\t"< <"z"< <"\t"< <"U"< <endl;

for(int i=0; i<numPoints ;i++){

for(int j=0; j<numPoints ;j++){

for(int k=0; k<numPoints ;k++){

file< <(float)i/numPoints< <"\t"< <(float)j/numPoints

< <"\t"< <(float)k/numPoints< <"\t"< <el(grid,i,j,k)

< <"\t"< <endl;}}}

system("gnuplot skript.gnu");

F. Beaujean GNUPLOT

Page 21: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Verwendung aus C++(3)

data.dat

# number of

iterations: 239

# x y z U

0 0 0 0

0 0 0.0238095 0

0 0 0.047619 0

0 0 0.0714286 0

skript.gnu

set terminal X11

#set terminal postscript enhanced

color

. . .set view 0,0

splot "data.dat" using 1:2:4 with

lines title "Potential"

pause -1

F. Beaujean GNUPLOT

Page 22: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Fitting

Nur zwei Befehle

f (x) = A ∗ cos (x + p)

fit f (x) �data� via A,p

Examples. . .Final set of parameters Asymptotic Standard Error=================================================A = -1.00025 +/- 0.001433 (0.1433%)p = 1.57084 +/- 0.001346 (0.08569%)

F. Beaujean GNUPLOT

Page 23: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Hilfreiche Links

Referenz

www.gnuplot.info: viele Links, Dokumentation etc

die mitgelieferte Hilfe ( u.U. veraltet), mitBefehlszusammenfassung gpcard.pdf ( 7 Seiten)

http://www.google.com/Top/Science/Math/Software/

Graphing/Gnuplot/

http://t16web.lanl.gov/Kawano/gnuplot/index-e.html

hervorragende Seite, viele Beispiele mit screenshots.

Eingabe Hilfen

EMACS mode http://feff.phys.washington.edu/~ravel/software/gnuplot-mode/ Syntax Einfärbung undBefehlserweiterung, für Leute die Tippen bevorzugen

QGFE http://www.xm1math.net/qgfe/ zum klicken

F. Beaujean GNUPLOT

Page 24: Einführung in GNUPLOT - mpp.mpg.dejingliu/ECPI/GNUplot/GNUPLOTintro.pdf · Einleitung Fähigkeiten Geschichte GNUPLOT ist das plotting programm unter Linux es gehört nicht zu der

EinleitungFähigkeiten

Zusammenfassung

Anfang mühsam, danach sehr komfortabel, nur wenige Befehle

GNUPLOT ist sehr schnell, exzellent für wiederkehrendeAufgaben ( Messungen an Experimenten)

Noch mehr Links

http://www.mathtools.net/C_C__/index.html viele Linkszu Bibliotheken aus allen Bereichen der Naturwissenschaften,auch viele Plotengines, nicht alle frei verfügbar

http://www.oonumerics.org/oonLinks zu sehr hilfreichen,freien Paketen ( mein Tip: Blitz++)

F. Beaujean GNUPLOT