orm@doc-tcpip.org

Erstellt: Januar 2002 - Letzte Modifikation: Oktober 2013

[ Main | Local ]


GNU-plot Merkzettel

Was man so braucht

Zuerst mein Template-File, was ich immer benutze, wenn ich mir einen Plot zusammenbaue...

 
set pointsize 1.5 ==> Setzt die Größe der Punkte.
set key 2,-1 ==> Setzt die Beschriftung der Punkte von den Punkten ab.
set timestamp ==> Anschalten des Datum/Zeit Indikators.
set out 'bla.postscript' ==> Setzt Ausgabefile.

set logscale x ==> Setzt auf der x-Achse eine logarithmische Skala.

Man kann eine ganze Reihe verschiedener Ausgabeformate auswählen.
Das ist je nach Installation verschieden.
Man sieht die Formate und nötige Parameter mit
set terminal

Dann muß man eine neue Ausgabedatei setzen und das Format
spezifizieren:
PNG Bild:
set terminal png medium color
set out "versuch.png"
Postscript:
set terminal post enhanced color solid "Helvetica" 21
set out "versuch.ps"

Man kann das Ausgabefile schreiben und dann wieder auf den
Bildschirm ausgeben:

... 
set output "gnu.proc.c.0.eps"
set terminal postscript eps  color
plot "c0" using 0:6 title "Forks" w linespoints, \
"c0" using 0:7 title "Execs" w linespoints
set terminal X11
replot
reset


set title "Prozessor 0 - 3"
set ylabel "% usr"
set yrange [-1:110]
set xlabel "Time"
set output "gnu.proc.usr.eps"
set terminal postscript eps  color
plot "u0" using 0:3 title "Prozessor 0" w points, \
"u1" using 0:3 title "Prozessor 1" w points, \
"u2" using 0:3 title "Prozessor 2" w points,\
"u3" using 0:3 title "Prozessor 3" w points
set terminal X11
replot
reset

gnuplot> set terminal X11
Terminal type set to 'X11'
Options are '0'
gnuplot> load 'gnu.proc.idle'
gnuplot> set output "proc.idle.eps"                  
gnuplot> set terminal postscript eps  color  
Terminal type set to 'postscript'
Options are 'eps noenhanced color dashed defaultplex "Helvetica" 14'
gnuplot> replot                              


Man kann die Daten von Gnuplot Ausschneiden und Auswerten lassen:

- Ausschneiden von Daten:
Plotten von Spalte 2 (x-Achse) gegen Spalte 3, wenn Spalte 3 größer als Spalte 4 ist. Spalte 4 (y), wenn y>5
plot 'bla.file' using 2:($3>4 ? $3 :1/0)

- Rechnen in GNU plot:
Alle y-Achsen Werte werden durch 30 geteilt:
plot "net.aus" using 1:($4/30) title "If en1 Out" w linespoints, \
"net.aus" using 1:($6/30) title "If en3 In" w linespoints, \
"net.aus" using 1:($10/30) title "If en3 RecErr" w linespoints
Alle y-Achsen Werte werden mit -1 malgenommen:
plot 'bla.file' using 1:($3*(-1))

set ytics nomirror
set y2label "xxxx"
set y2range [2:8]
set y2tics -1,.3,4
plot file_x using 2:3 axes x1y2 title "xxxxxx"

Steigung finden:
Linear Fit:

Man muß eine Funktion wählen, gegen die man die Daten anpassen
möchte. Will man also die Steigung einer Gerade ermitteln, so 
setzt man die Gleichung der Geraden ein. 
Will man die Verteilung der Daten ermitteln, so setzt man die 
Gleichung des Modelles der Verteilung ein (Gauss, Poisson etc.).

Beispiele:
f(x)=a+x+b

fit [0:600] f(x) "bla.file" using 0:3 via a,b ;

Der Fit wird ausgerechnet, und die Endwerte werden ausgegeben.
Man kann so direkt die Steigung und den Y-Achsen Durchstoßpunkt
finden (mit Fehlerintervall).
Gnuplot speichert sie in einem File, und man kann dann Kurve
und Fit ausdrucken:

plot "bla.file" using 0:3 title "....." wpoints, f(x) title 'bla Fit'


oder:

f(x) = m*x + b
fit [2:13] f(x) "bla.file" using 1:2 via m,b

Plotten in 3 Dimensionen:
set xrange [-1:-3]
set yrange [5:15]
set zrange [1000:2750]
set view 45,20,1.0,2.5
splot 'bla.file'

Für ein 3-D Plot braucht man einen Wertebereich auf der z-Achse
(set zrange). Dann muß man angeben, wie der Plot dargestellt werden
soll (aus der Vogelperspektive etc.). Das macht man mit dem Kommando
set view, dem man Blickwinkel und Blickhöhe mitgeben muß (Azimuth und
Elevation).
Statt plot nutzt man den splot Befehl; das Eingabefile muß Daten für die
drei Achsen liefern.
 
set title "Durchgang durch das Regelwerk der Firewall"
set ylabel "Zeit [msec]"
set yrange [0:23]
set ytics  2
set xlabel "Anzahl der Regeln [fwfilter Cmd.]"
set output "/tmp/fw_perf.eps"
set terminal postscript eps color
plot "/tmp/orm_aus.gnu" using 1:2 title "Regel 1, SecIF, inbound (SYN -> FW)" w linespoints, \
"/tmp/orm_aus.gnu" using 1:3 title "Regel 2, NosecIF, outbound (SYN -> UnsecHost)" w linespoints, \
"/tmp/orm_aus.gnu" using 1:4 title "Regel 3, NosecIF, inbound (SYN/ACK -> FW)" w linespoints, \
"/tmp/orm_aus.gnu" using 1:5 title "Regel 4, SecIF, outbound (SYN/ACK -> SecHost)" w linespoints, \
"/tmp/orm_aus.gnu" using 1:6 title "Regel 1, SecIF, inbound (ACK -> FW)" w linespoints, \
"/tmp/orm_aus.gnu" using 1:7 title "Regel 2, NosecIF, outbound (ACK -> UnsecHost)" w linespoints
set terminal X11
replot
reset
 
set title "Einfluß der IP Adressen"
set ylabel "Zeit [msec]"
set yrange [0:20]
set ytics  2
set xlabel "Versuch Nr."
set xrange [0:7]
set output "/tmp/fw_verg.eps"
set terminal postscript eps color
plot "/tmp/orm_aus2.gnu" using 1:2 title "SYN Inbound, Regel 1" w points, \
"/tmp/orm_aus2.gnu" using 1:3 title "SYN Outbound, Regel 2" w points, \
"/tmp/orm_aus2.gnu" using 1:4 title "SYN/ACK Inbound, Regel 3" w points, \
"/tmp/orm_aus2.gnu" using 1:5 title "SYN/ACK Outbound, Regel 4" w points, \
"/tmp/orm_aus2.gnu" using 1:6 title "ACK Inbound, Regel 1" w points, \
"/tmp/orm_aus2.gnu" using 1:7 title "ACK Outbound, Regel 2" w points
set terminal X11
replot
reset
 
set title "Sonnenhöchststand in Madrid und Mainz (2004)"
#set timefmt "%m/%d/%y"
#set xdata time
#set timefmt "%b%d"
#set xrange ["1":"365"]
#set format x "%d %b"
#set timefmt "%b%d"
set xlabel "[Tag des Jahres]"
set ylabel "[Uhrzeit]"
set ydata time
set format y "%H.%M"
set timefmt "%Hh%Mm"
plot 'madrid.txt' using 0:11 title "Zenit Madrid", \
'mainz.txt' using 0:11 title "Zenit Mainz"
#plot 'mainz.txt' using 1:7

Auszug Eingabefile:

#/Madrid Datum Morgendämmerung Abenddämmerung Tageslänge Sonnenaufgang Zenit Sonnenuntergang Sternzeichen
#Jahr/2004
Jan/01 : 7h33m : 19h03m : 9h20.6m : 8h37.9m : 13h18m09s : 17h58.5m Sgr
Jan/02 : 7h33m : 19h04m : 9h21.3m : 8h38.1m : 13h18m37s : 17h59.3m Sgr
Jan/03 : 7h33m : 19h05m : 9h22.1m : 8h38.1m : 13h19m05s : 18h00.2m Sgr

[ Main | Local ]

[ Allgemein | UNIX | AIX | TCP-IP | TCP | ROUTING | DNS | NTP | NFS | FreeBSD | Linux | RPi | SMTP | Tracing | GPS | LW ]

Copyright 2001-2021 by Orm Hager - Es gilt die GPL
Feedback bitte an: Orm Hager (orm@doc-tcpip.org )