Dateien visualisieren Uebung 02 Dateien visualisieren
Anzeige am Bildschirm Der Bildschirm ist 2-dimensional Datensä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 Parameter Ein 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 Parameter Hat 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 Parameter Bei drei Parametern muß man sich mit perspektivischen Bildern einer dreidimensionalen Punktwolke behelfen, oder die Werte der dritten Dimension durch eine Farbskala darstellen. WS 2010/11 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. WS 2010/11 H. Werner : Datenalyse
Gnuplot-Literatur WS 2010/11 H. Werner : Datenalyse 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 WS 2010/11 H. Werner : Datenalyse
Gnuplot installieren Für Windows Für alle anderen Betriebssysteme 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 WS 2010/11 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 WS 2010/11 H. Werner : Datenalyse
Festlegungen ändern WS 2010/11 H. Werner : Datenalyse #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 WS 2010/11 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 WS 2010/11 H. Werner : Datenalyse
Punktewolken WS 2010/11 H. Werner : Datenalyse # 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 WS 2010/11 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 WS 2010/11 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 WS 2010/11 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 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 WS 2010/11 H. Werner : Datenalyse
Sicht von oben (Karte) WS 2010/11 H. Werner : Datenalyse 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 WS 2010/11 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? WS 2010/11 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. WS 2010/11 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. WS 2010/11 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; WS 2010/11 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 WS 2010/11 H. Werner : Datenalyse