E N D
Uebung 02 Dateien visualisieren
Anzeige am Bildschirm • Der Bildschirm ist 2-dimensionalDatensätze sind in den seltensten Fällen nur 2-dimensional, sondern n-dimensional, wobei n die Anzahl der Parameter pro Datensatz ist. Damit ergibt sich das Problem, wie man hochdimensionale Datensätze auf dem Bildschirm darstellt. • 1 ParameterEin Datensatz mit nur einem Parameter kann z.B. dargestellt werden, indem man die Werte als y-Werte gegen den x-Wert „Zeilennummer“ aufträgt und so eine Kurve erhält • 2 ParameterHat ein Datensatz 2 Parameter (Spalten), so kann man diese als x- und y-Wert interpretieren und erhält so eine Punktwolke (für jede Zeile ein Punkt) die sich z.B. auch um eine Kurve sammeln kann. • 3 ParameterBei drei Parametern muß man sich mit perspektivischen Bildern einer dreidimensionalen Punktwolke behelfen, oder die Werte der dritten Dimension durch eine Farbskala darstellen. H. Werner : Datenalyse
hochdimensionale Dateien • Sind die Datensätze wie in den meisten Anwendungen sehr hochdimensional, so kann keine gesamtheitliche Schau auf die Daten erwartet werden. • Parameterauswahl:Indem man sich 2 (oder 3) Parameter aussucht, kann man für diese eine Teilschau entwickeln und damit Zusammenhänge zwischen wenigen Parametern visualisieren. • Projektionen:Man kann sich 2 (oder 3) x,y Projektionsvektoren der Länge n (=Parameter-Anzahl) vorgeben und dann für jeden Datensatz z die Skalarprodukte xz und yz als Koordinaten für die Punktwolke wählen. Damit erzeugen wir 2-dimensionale Projektionen der Datensätze, die dann eine Teilschau darstellen. H. Werner : Datenalyse
Gnuplot-Literatur • GNUPLOT-HOME: Homepage, Dokumentation http://www.gnuplot.info/ http://www.gnuplot.info/docs_4.4/gnuplot.pdf • GNUPLOT-DEMO: gnuplot-Beispiele mit gnuplot-Programmen http://gnuplot.sourceforge.net/demo/ • GNUPLOT-TIPS: sehr gutes englischsprachiges Tutorial http://t16web.lanl.gov/Kawano/gnuplot/index-e.html • GNUPLOT auf die Schnelle: Kurzskript Uni Hohenheim https://www.uni-hohenheim.de/~aurbach/gnuplot/gnuplot.html • GNUPLOT_GRUNDKURS: http://userpage.fu-berlin.de/~voelker/gnuplotkurs/gnuplotkurs.html • GNUPLOT_INFO: Gnuplot_page, engl. Manual, deutsches Kurzmanual http://www.tu-chemnitz.de/urz/anwendungen/grafik/gnuplot.html http://www.tu-chemnitz.de/urz/anwendungen/grafik/gnuplotdoc.html http://www.tu-chemnitz.de/urz/kurse/unterlagen/gnuplot/gnuplot.html • GNUPLOT_Einführung U-Osnabrück: PDF-Skript der Uni Osnabrück http://www.rz.uni-osnabrueck.de/Zum_Nachlesen/Skripte_Tutorials/Gnuplot_Einfuehrung/pdf/gnuplot.pdf http://www.rz.uni-osnabrueck.de/Zum_Nachlesen/Skripte_Tutorials/index.htm H. Werner : Datenalyse
Gnuplot installieren • Für Windows • fertig übersetzte Version herunterladen:http://sourceforge.net/projects/gnuplot/files/ • Verzeichnis gnuplot entpacken. • Im Unterverzeichnis bin die Datei wgnuplot.exe verwenden. • Es öffnet sich ein Fenster mit einer command-line Bedieneroberfläche. • Für alle anderen Betriebssysteme • http://www.gnuplot.info/ • Informationen dort lesen und gnuplot makefile laden/übersetzen H. Werner : Datenalyse
Zeichnen einer Kurve #Zeichnen mit default-Festlegungen #--------------------------------- a=0.25 # def einer Konstante a f(x)=sin(x)*a # def einer math. Funktion plot f(x) # plotten der Funktion H. Werner : Datenalyse
Festlegungen ändern #Festlegungen ändern mit set #--------------------------------- set xrange [-5:10] # x-werte zwischen -5 und +10 set yrange [-150:250] # y-werte zwischen -150 und +250 a=0.7 b=-2.0 c=-25 # Konstantendefinitionen f(x)=a*x**3+b*x**2+c*x-12 # Funktionsdefinition plot f(x) # Zeichnen der Funktion H. Werner : Datenalyse
Balkendiagramme #Darstellungen mit boxes #--------------------------------- plot '1.dat' using 1:2:(0.5) with boxes fs solid # using 1:2:(0.5) bedeutet 1. und 2. Spalte verwenden mit 0.5 Box-breite # fs solid spezifiziert den “fill-style” als ausgefüllt gerasterte Daten Unregelmäßige Verteilung der Daten H. Werner : Datenalyse
Punktewolken # Plotten von gemessenen Daten #==================================== set title ‚gemessene Daten' #Titel der Graphik set yrange [-100:200] #Darstellungsbereich in y-Richtung set xrange [5:10] #Darstellungsbereich in x-Richtung set xlabel ‚x-Koordinate' #Beschriftung der x-Achse set ylabel ‚y-Koordinaten' #Beschriftung der y-Achse plot ‚Polynom.dat' using 1:2 with points # Zeichnen der Datei Polynom.dat mit den Spalten 1 und 2 als Punkte 5.58904, -96.7588 5.89455, -81.4322 6.32457, -78.8693 6.29633, -69.9246 6.60183, -67.3869 6.61559, -55.2513 7.08760, -51.4070 7.15709, -33.5176 7.43436, -25.2261 7.40685, -15.6281 7.83687, -0.301508 7.83687, 15.6533 8.05912, 32.2613 8.36462, 35.4774 8.48914, 48.2412 8.71139, 62.9397 8.58615, 84.6482 8.66940, 96.7839 8.80840, 115.955 9.00314, 119.774 9.19715, 125.528 9.44691, 147.261 9.64093, 174.724 9.64093, 195.804 H. Werner : Datenalyse
Kleines Gitter 0 0 1 0 1 2 0 2 3 1 0 4 1 1 5 1 2 4 # Plotten eines kleinen Gitters #==================================== set pointsize 2 plot ‚pts.dat' using 1:2 with points # Zeichnen der Datei pts.dat mit den Spalten 1 und 2 als Punkte plot ‚pts.dat' using 2:3 with points # Zeichnen der Datei pts.dat mit den Spalten 2 und 3 als Punkte H. Werner : Datenalyse
3-dimensional, clipping # dreidimensionalPlotten mit splot #==================================== set pointsize 2 splot ‘pts.dat' # Zeichnen der Datei pts.dat dreidimensional splot 'pts.dat' using 1:2:(($3>=3)&&($3<=4))? $3 :1/0 # 1/0 ist undefiniert, also wird dieser Punkt nicht geplottet #Punkte mit 3<=z<=4 werden aber geplottet 0 0 1 0 1 2 0 2 3 1 0 4 1 1 5 1 2 4 H. Werner : Datenalyse
Säulendiagramm # X Y Farbe 0.0 0.0 2.0 0.0 1.0 2.0 0.0 1.0 3.5 0.0 2.0 3.5 1.0 0.0 2.0 1.0 1.0 2.0 1.0 1.0 3.5 1.0 2.0 3.5 1.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 3.0 1.0 2.0 3.0 2.0 0.0 1.0 2.0 1.0 1.0 2.0 1.0 3.0 2.0 2.0 3.0 # Farbkodierung der z-Komponenete # ==================================== Set pm3d # Dies ist ein style, der es erlaubt, farbige Flächen zu malen # die Farben entstehen aus einer 256-Farbenskala nach einer Spalte splot "step3d.dat" with pm3d # Zeichnen der Datei step3d.dat dreidimensional # Die Datei muß dazu so geartet sein, daß darin einfarbige Flächen # möglich sind H. Werner : Datenalyse
Sicht von oben (Karte) 0 0 1 0 1 1 0 1 2 0 2 2 0 2 3 0 3 3 1 0 1 1 1 1 1 1 2 1 2 2 1 2 3 1 3 3 1 0 4 1 1 4 1 1 5 1 2 5 1 2 4 1 3 4 2 0 4 2 1 4 2 1 5 2 2 5 2 2 4 2 3 4 # Farbkodierung der z-Komponenete als Karte # ==================================== Set pm3d map # Dies ist ein style, der es erlaubt, farbige Flächen zu malen # die Farben entstehen aus einer 256-Farbenskala nach einer 3.Spalte splot „ptsErw.dat" with pm3d # Zeichnen der Datei ptsErw.dat dreidimensional von oben gesehen # Die Datei muß dazu so geartet sein, daß darin einfarbige Flächen # möglich sind H. Werner : Datenalyse
Aufgabe 3 • Analysiere die Datei oro_Plot.dat . • Plotte 3-dim den Bereich mit 0<$9=0.1 und den mit $9<=0 • Plotte 2-dim die Datei mit $1:$3,…,$8 • Plotte 2-dim die Datei mit $2:$3,…,$8 • Plotte 3-dim mit $3,…,$8 als z-Koordinate • Was kann man aus diesen Projektionen für Schlüsse ziehen? H. Werner : Datenalyse
Datei für Säulendiagramm 1 • Für die Darstellung einer Datei als Säulendiagramm gehen wir zunächst davon aus, daß die beiden ersten Spalten die Koordinaten der zugrundeliegenden Ebene enthalten und sortiert sind. • Ist das nicht der Fall, so muß man zunächst mit awk die gewünschte x-Spalte mit der ersten Spalte und die gewünschte y-Spalte mit der zweiten Spalte austauschen. • Dann wird mit sort die Datei in eine sortierte Version geschrieben. H. Werner : Datenalyse
Datei für Säulendiagramm 2 • Nun sind in den Records dadurch Blöcke entstanden, daß in der ersten Spalte in diesen Records immer dieselbe Zahl steht. • Diese Blöcke werden nun vergrößert, indem man jede Zeile in bestimmter Weise ver-4-facht. • Die dadurch neu entstehende Datei kann dann mit Set pm3d direkt als Säulendiagramm geplottet werden. H. Werner : Datenalyse
saeulen.awk BEGIN {bnr=0; x=0; y=0; k=0; block[1]="";} (NF>0) { if($1>bnr){ausgabe(); bnr=$1;} else schreibe4();} END {ausgabe();} function ausgabe(){ print ""; for (i=1; i<=k; i++){print block[i];} print ""; delete block; k=0; } function schreibe4(){ x=$1; y=$2; print $0; $2=y+1; print $0; k++; k++; $1=x+1; block[k]=$0; $2=y; block[k-1]=$0; } H. Werner : Datenalyse
Beispiel Säulendiagramm # =======auf Windows CMD===================== awk -f saeulen.awk Karte.dat >KarteErw.dat # erzeugt eine Datei KarteErw.dat, die geeignet ist #für ein Säulendiagramm # =======in gnuplot===================== Set pm3d splot 'KarteErw.dat' using 1:2:($3<1)? $3 : 1/0 with pm3d H. Werner : Datenalyse