Visualisierung und Plots in MATLAB

Transcrição

Visualisierung und Plots in MATLAB
Anwendungssoftware III (MATLAB)
V – Visualisierung und Plots in MATLAB
Michael Liedlgruber
Fachbereich Computerwissenschaften
Universität Salzburg
Sommersemester 2014
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
1 / 67
Plots in MATLAB
Plots in MATLAB
2D Plots
MATLAB verfügt über sehr mächtige Möglichkeiten zur Visualisierung von
Daten und Funktionen. Dies ist einer der Gründe für den Erfolg von MATLAB.
3D Plots
Funktionsdarstellungen
Einige der Möglichkeiten:
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Visualisierung von Daten
Explizite Funktionen (sind vor allem in der Lehre interessant)
Plots von statistischen Daten
Dabei unterstützt MATLAB sowohl Visualisierungen in 2D als auch in 3D.
Dabei unterscheidet man zwischen Plots und Figuren (Figures):
Ein Plot enthält die Darstellung einer Funktion oder von Daten.
Eine Figur enthält einen oder mehrere Plots.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
2 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Das plot-Kommando
Eine häufig verwendete Funktion zum Visualisieren von Daten ist das
plot-Kommando.
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Dieser Funktion werden im einfachsten Fall Koordinaten von Punkten in der
Ebene übergeben. Diese werden dann durch Linien verbunden.
>> plot (x , y )
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Den Sinus im Intervall von [0, 2π] kann man zum Beispiel mit folgenden
Kommandos visualisieren:
>> x = l i n s p a ce (0 , 2* pi , 50);
>> y = sin ( x );
>> plot (x , y )
In diesem Beispiel wurden die x-Werte im Intervall auf 50 äquidistante Punkte
verteilt.
Hinweis: Man kann bei plot auch einfach nur y angeben. Dann wird für x
automatisch 1:n verwendet (Index über y), wobei n die Länge von y ist.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
3 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
2D Plots
Mit Hilfe des title-Kommandos kann man dem Plot nun noch einen Titel
geben:
Einfaches Plotten
Eigenschaften von Plots
>> title ( ’ Der Sinus von 0 bis 2 pi ’ );
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Will man zur besseren Orientierung im Plot noch ein Gitter einblenden (oder
wieder ausblenden), verwendet man dazu das Kommando grid:
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
>> grid
Das fertige Resultat sieht dann wie folgt aus:
Export und Druck von
Grafiken
Der Sinus von 0 bis 2pi
1
0.5
0
−0.5
−1
M. Liedlgruber
0
1
2
3
4
Anwendungssoftware III (MATLAB) – SS 2014
5
6
7
4 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Führt man in einer Figure erneut ein Plot-Kommando aus, wird generell der alte
Plot vom neuen ersetzt. Um dies zu verhindern, kann man unter anderem den
Befehl hold verwenden:
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
>> hold on ; % ab jetzt nichts mehr e r s e t z en
>> Plot - K o m m a n d o ( s )
>> hold off ; % E r s e t z u n g s s p e r r e wieder a u f h e b en
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Zum Beispiel:
>>
>>
>>
>>
hold on ; % ab jetzt nichts mehr e r s e t z en
plot ( sin ( l i n s p a c e (0 , 2* pi , 50))); % Sinus
plot ( cos ( l i n s p a c e (0 , 2* pi , 50))); % Kosinus
hold off ; % E r s e t z u n g s s p e r r e wieder a u f h e b en
1
0.8
0.6
0.4
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
M. Liedlgruber
0
5
10
15
20
25
Anwendungssoftware III (MATLAB) – SS 2014
30
35
40
45
50
5 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Eine weitere Möglichkeit, mehrere Plots zu überlagern, besteht in einer
erweiterten Verwendung des plot-Kommandos. So kann man zum Beispiel
mittels
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
>> plot ( x1 , y1 , x2 , y2 )
zwei Plots auf einmal zeichnen (überlagern).
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
Dabei wird der erste Plot durch x1 und y1 definiert, während der zweite Plot
durch x2 und y2 definiert wird.
Auf diese Art können auch mehr als zwei Plots kombiniert werden.
Anwendungssoftware III (MATLAB) – SS 2014
6 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Subplots erzeugen
Ein weitere, sehr nützliche Funktion ist subplot. Diese Funktion erlaubt es,
mehrere Plots in einer Figur zu platzieren (Matrix-Anordnung).
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Dabei benötigt man standardmäßig drei Parameter:
Implizite Plots
Export und Druck von
Grafiken
Die generelle Verwendung des Kommandos sieht wie folgt aus (für r Zeilen und c
Spalten, mit n = r · c):
>>
>>
>>
>>
>>
>>
>>
M. Liedlgruber
Anzahl der Zeilen (Anzahl der Plot-Reihen)
Anzahl der Spalten (Anzahl der Plot-Spalten)
Index des aktuellen Plots (die Indizierung läuft Zeile für Zeile von links oben,
nach rechts unten)
subplot (r , c , 1);
Plot - K o m m a n d o ( s )
subplot (r , c , 2);
Plot - K o m m a n d o ( s )
...
subplot (r , c , n );
Plot - K o m m a n d o ( s )
% 1. Plot aktiv
% 2. Plot aktiv
% n - ter Plot aktiv
Anwendungssoftware III (MATLAB) – SS 2014
7 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
2D Plots
Schematisch sieht eine Figur bei Verwendung des Kommandos subplot
folgendermaßen aus:
Einfaches Plotten
Eigenschaften von Plots
c Spalten
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Plot 1
Funktionsdarstellungen
Plot 2
...
Plot c
...
Plot r*c
Plot
((r-1)*c)+1
Plot
((r-1)*c)+2
...
M. Liedlgruber
...
Export und Druck von
Grafiken
...
Implizite Plots
r Zeilen
Parametrisierte Plots
Anwendungssoftware III (MATLAB) – SS 2014
8 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
Im folgenden Beispiel stellen wir fünf Plots in einer Figur dar:
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
subplot (2 , 3 , 1); % 2 Zeilen und 3 Spalten (1. Plot )
plot ( sin ( l i n s p a c e (0 , 2* pi , 50))); % Sinus
subplot (2 , 3 , 2); % 2. Plot
plot ( cos ( l i n s p a c e (0 , 2* pi , 50))); % Kosinus
subplot (2 , 3 , 3); % 3. Plot
plot ( tan ( l i n s p a c e (0 , 2* pi , 50))); % Tangens
subplot (2 , 3 , 4); % 4. Plot
plot ( l i n s p a c e (1 , 10 , 5 0 ) . ^ 2 ) ; % x ^2
subplot (2 , 3 , 5); % 5. Plot
plot (1./( l i n s p a c e (0 , 10 , 50))); % 1./ x
Das Ergebnis sieht wie folgt aus:
1
1
0.5
0.5
0
0
−0.5
−0.5
−1
0
10
20
30
40
50
100
−1
50
0
0
10
20
30
40
50
0
10
20
30
40
50
−50
0
10
20
30
40
50
6
4
50
2
0
M. Liedlgruber
0
10
20
30
40
50
0
Anwendungssoftware III (MATLAB) – SS 2014
9 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
In MATLAB kann man beim plot-Kommando neben den Daten auch Angaben
bezüglich des gewünschten Aussehens eines Plots machen. Im Allgemeinen
sieht das so aus (in Form von Kürzel):
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
>> plot ( x1 , y1 , format1 , x2 , y2 , format2 )
Dabei sind format1 und format2 Strings, welche verschiedene Angaben zu
den Plots enthalten können:
Parametrisierte Plots
Linienfarbe: die Farbe, welche für das Zeichnen von Linien verwendet wird.
Markertyp: je nach Markertyp, wird jeder Datenpunkt in einem Plot speziell
markiert.
Linientyp: gibt an, ob der Plot z.B. mit Hilfe einer gestrichelten Linie
gezeichnet werden soll.
Implizite Plots
Export und Druck von
Grafiken
Folgende Linienfarben können verwendet werden:
Kürzel
r
g
b
c
M. Liedlgruber
Farbe
Rot
Grün
Blau
Cyan
Anwendungssoftware III (MATLAB) – SS 2014
Kürzel
m
y
k
Farbe
Magenta
Gelb
Schwarz
10 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
Als Markertypen stehen unter anderem folgende Zeichen zur Verfügung:
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Kürzel
o
x
+
∗
s
d
Markertyp
Kreis
X
Plus-Zeichen
Stern
Quadrat
Diamantform (3)
Kürzel
v
ˆ
<
>
p
h
Markertyp
Umgekehrtes Dreieck (▽)
Dreieck (nach oben) (△)
Dreieck (nach links) (⊳)
Dreieck (nach rechts) (⊲)
Pentagramm
Hexagramm
Implizite Plots
Export und Druck von
Grafiken
Und für Linientypen können folgende Kürzel verwendet werden.
Kürzel
−
:
−.
−−
M. Liedlgruber
Linientyp
durchgehend (Standard)
gepunktet
Strich-Punkt-Strich-Punkt-...
gestrichelt
Anwendungssoftware III (MATLAB) – SS 2014
11 / 67
Einfaches Plotten in MATLAB
Plots in MATLAB
2D Plots
Beispiel:
Die Eingaben
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
>>
>>
>>
>>
>>
x = l i n s p a ce (0 ,1 ,100);
y1 = 1 -2* abs (x -0.5);
y2 = x ;
y3 = 1 -4* abs (x - 0 . 5 ) . ^ 2 ;
plot (x , y1 , ’ rs : ’ , x , y2 , ’bo -. ’ , x , y3 , ’kp - ’ );
resultieren in folgendem Plot:
Implizite Plots
1
Export und Druck von
Grafiken
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Hinweis: soll ein Plot gedruckt werden, sollte man immer verschiedene
Markertypen für verschiedene Kurven verwenden. Dies erleichtert die
Unterscheidung von Kurven, selbst beim S/W-Druck.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
12 / 67
Verschiedene Eigenschaften von Plots
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Wir haben bereits gesehen, wie man den Titel eines Plots ändern kann (title)
und wie man ein Gitter einblenden kann (grid).
Es gibt aber noch andere Funktionen, mit welchen man diverse Eigenschaften
von Plots einstellen kann:
legend: erlaubt das Hinzufügen einer Legende im Plot.
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
>> legend ( Str1 , Str2 , ...)
Dabei wird für jede einzelne Kurve eine Beschriftung akzeptiert (als String).
xlabel, ylabel und zlabel: Achsenbeschriftungen hinzufügen oder
ändern. Jede dieser Funktionen nimmt einen String als Argument. Zum
Beispiel:
>> xlabel ( ’ B e s c h r i f t u n g der x - Achse ’ );
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
13 / 67
Verschiedene Eigenschaften von Plots
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
axis: ohne Argument liefert Funktion die aktuellen Achsenbereiche des
aktiven Plots als Vektor der Form
[xlow xhigh ylow yhigh zlow zhigh] (bei 2D-Plots werden die
Grenzen der z-Achse nicht zurückgegeben). Zum Beispiel:
>> axis
ans =
0
1
0
1
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Will man die aktuellen Achsenbereiche ändern, übergibt man axis einfach
die neuen Grenzen in der gleichen Form wie sie zurückgeliefert werden
(Vektor). Das Beispiel
>> axis ([ -1 1 -1 1]);
würde im aktiven Plot die Bereiche der x- und y-Achse jeweils auf [-1 1]
umsetzen. Mit
>> axis tight ;
werden die Bereiche wieder so gesetzt, dass die Daten perfekt in den Plot
passen.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
14 / 67
Verschiedene Eigenschaften von Plots
Plots in MATLAB
2D Plots
Beispiel:
Die folgenden Kommandos
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
>>
>>
>>
>>
>>
x = l i n s p a ce (0 , 2* pi , 50);
plot (x , sin ( x ) , x , cos ( x )); % Sinus und Kosinus plotten
axis ([0 2* pi -1 1]);
% x - Grenzen [0 2* pi ]
legend ( ’ sin ( x ) ’ , ’ cos ( x ) ’ ); % Legende
xlabel ( ’x - Wert ’ ); ylabel ( ’ Wert ’ ); % A c h s e n b e s c h r i f t u n g e n
erzeugen folgenden Plot:
Implizite Plots
1
Export und Druck von
Grafiken
sin(x)
cos(x)
0.8
0.6
0.4
Wert
0.2
0
−0.2
−0.4
−0.6
−0.8
−1
M. Liedlgruber
0
1
2
3
x−Wert
Anwendungssoftware III (MATLAB) – SS 2014
4
5
6
15 / 67
Verschiedene Eigenschaften von Plots
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
Es gibt noch zu plot ähnliche Funktionen, welche aber auf verschiedene Arten
die Koordinatenachsen eines Plots skalieren (aber wie plot verwendet werden):
loglog: x-Achse und y-Achse logarithmisch
semilogx: x-Achse logarithmisch
semilogy: y-Achse logarithmisch
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
>> x = l i n s p a ce (0 ,10 ,100);
>> subplot (1 ,2 ,1); plot ( exp ( x )); title ( ’y linear ’ );
>> subplot (1 ,2 ,2); s e m i l o gy ( exp ( x )); title ( ’y log ’ );
Export und Druck von
Grafiken
4
2.5
y log
5
10
4
2
10
1.5
10
1
10
0.5
10
0
M. Liedlgruber
y linear
x 10
3
2
1
0
0
20
40
60
80
100
10
0
Anwendungssoftware III (MATLAB) – SS 2014
20
40
60
80
100
16 / 67
Verschiedene Eigenschaften von Plots
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Plotten mit zwei y-Achsen
Will man in einem Plot zwei Datensätze darstellen, welche aber eine
verschiedene Skalierung benutzen sollen, hilft das Kommando plotyy weiter.
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Diese Funktion plottet zwei Sätze von Daten. Dabei gilt:
die Datensätze werden in zwei verschiedenen Farben gezeichnet
für jeden Datensatz wird eine y-Achse angezeigt (links und rechts)
entsprechend den Farben für die Datensätze, werden auch die Farben der
entsprechenden Achsen geändert
Export und Druck von
Grafiken
So ergibt folgendes Beispiel ...
>> x = l i n s p a ce (0 , 10 , 100);
>> y = 3* exp ( -0.5* x );
>> plotyy (x , y , x , y , ’ plot ’ , ’ s e m i l o g y ’)
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
17 / 67
Verschiedene Eigenschaften von Plots
Plots in MATLAB
2D Plots
... folgenden Plot, wobei die linke y-Achse linear skaliert ist, während die rechte
y-Achse logarithmisch skaliert ist:
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
1
3
10
Weitere Funktionen zur
Visualisierung
2.5
3D Plots
Funktionsdarstellungen
0
2
10
Parametrisierte Plots
Implizite Plots
1.5
Export und Druck von
Grafiken
−1
1
10
0.5
0
−2
0
2
4
6
8
10
10
Weitere Möglichkeiten der Achsenformatierung bei plotyy findet man in der
MATLAB-Hilfe (doc plotyy).
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
18 / 67
Verschiedene Eigenschaften von Plots
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Koordinatentumwandlungen
Zuguterletzt gibt es folgende Funktionen, um Koordinaten von einem System in
ein anderes umzuwandeln:
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Zwei gleiche Plots – aber einmal im kartesischen System und einmal mit
Polarkoordinaten geplottet:
>>
>>
>>
>>
>>
>>
>>
>>
>>
M. Liedlgruber
cart2pol: kartesische Koordinaten → Polarkoordinaten
pol2cart: Polarkoordinaten → kartesische Koordinaten
cart2sph: kartesische Koordinaten → spherische Koordinaten
sph2cart: spherische Koordinaten → kartesische Koordinaten
theta = l i n s p a ce (0 ,2* pi ,100);
rho = sin (2* theta ).* cos (2* theta );
[x , y ] = p o l 2 c a rt ( theta , rho ); % U m w a n d e l n
subplot (1 , 2 , 1);
plot (x , y ); % Plot im k a r t e s i s c h e n System
title ( ’ K a r t e s i s c h e s System ’ );
subplot (1 , 2 , 2);
polar ( theta , rho , ’r ’) % P o l a r k o ordinaten - Plot
title ( ’ P o l a r k o o r d i n a t e n ’ );
Anwendungssoftware III (MATLAB) – SS 2014
19 / 67
Verschiedene Eigenschaften von Plots
Plots in MATLAB
Dieses Beispiel ergibt folgende Figur:
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Kartesisches System
Polarkoordinaten
0.5
90
0.5
120
Erweiterte Eigenschaften
60
Weitere Funktionen zur
Visualisierung
0.25
150
30
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
180
0
0
Implizite Plots
210
Export und Druck von
Grafiken
330
240
−0.5
−0.5
M. Liedlgruber
300
270
0
0.5
Anwendungssoftware III (MATLAB) – SS 2014
20 / 67
Erweiterte Eigenschaften von Plots
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Um erweiterte Eigenschaften von Plots und Figuren zu setzen, gibt es in MATLAB
sogenannte Handles. Einfach ausgedrückt, sind Handles Verweise auf Elemente
von Figuren und Plots.
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Die Handles erlauben es dem Benutzer, jede Eigenschaft von Figures und Plots,
welche mit dem Figure-Property-Editor geändert werden kann, auch mit
Kommandos zu verändern. Zum Beispiel:
Schriftarten und Schriftgrößen in Plots
eigene Farben für Plots
Linienbreite bei Plots
Eine detailierte Beschreibung aller möglichen Einstellungen erhält man mittels
doc figure.
Hinweis: Man kann auch eine Figure mit dem Figure-Property-Editor verändern
und sich alle MATLAB-Kommandos für die Figure in ein m-File exportieren lassen
(im Menü des Figure Fensters unter “File → Generate m-File”). Zum Lernen der
Kommandos ideal.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
21 / 67
Erweiterte Eigenschaften von Plots
Plots in MATLAB
Beispiel:
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
>>
>>
>>
>>
>>
>>
>>
>>
Implizite Plots
Export und Druck von
Grafiken
>>
>>
>>
>>
>>
M. Liedlgruber
e = randn (100 ,2); y = cumsum ( e );
h = plot ( y );
l = legend ( ’ Random Walk 1 ’ , ’ Random Walk 2 ’)
t = title ( ’ Two Random Walks ’)
xl = xlabel ( ’ Day ’ ); yl = ylabel ( ’ Level ’)
set ( h (1) , ’ Color ’ ,[1 0 0] , ’ L i n e W i d t h ’ ,2 , ’ L i n e S t y l e ’ , ’: ’)
set ( h (2) , ’ Color ’ ,[1 .6 0] , ’ L i n e W i d th ’ ,2 , ’ L i n e S t y l e ’ , ’ -. ’)
set (t , ’ F o n t S i ze ’ ,14 ’ , ’ F o n t N a me ’ , ’ Arial ’ , ...
’ F o n t W e i g h t ’ , ’ bold ’)
set (l , ’ F o n t S i ze ’ ,14 ’ , ’ F o n t N a me ’ , ’ Arial ’ , ...
’ F o n t W e i g h t ’ , ’ bold ’)
set ( xl , ’ F o n t S i ze ’ ,14 ’ , ’ F o n t N a me ’ , ’ Arial ’ , ...
’ F o n t W e i g h t ’ , ’ bold ’)
set ( yl , ’ F o n t S i ze ’ ,14 ’ , ’ F o n t N a me ’ , ’ Arial ’ , ...
’ F o n t W e i g h t ’ , ’ bold ’)
parent = get ( h (1) , ’ Parent ’ );
set ( parent , ’ F o n t S i z e ’ ,14 ’ , ’ F o n t N a me ’ , ’ Arial ’ , ...
’ F o n t W e i g h t ’ , ’ bold ’)
Anwendungssoftware III (MATLAB) – SS 2014
22 / 67
Erweiterte Eigenschaften von Plots
Plots in MATLAB
Resultierender Plot:
2D Plots
Einfaches Plotten
Two Random Walks
Eigenschaften von Plots
8
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
Random Walk 1
Random Walk 2
6
3D Plots
4
Funktionsdarstellungen
2
Parametrisierte Plots
Export und Druck von
Grafiken
0
Level
Implizite Plots
−2
−4
−6
−8
−10
−12
0
20
40
60
80
100
Day
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
23 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Die meshgrid-Funktion
meshgrid ist eine nützliche Funktion um Koordinatenpaare (2D) oder
Koordinatentripel (3D) für Gitterpunkte zu erzeugen. Im Folgenden wird nur der
2D-Fall behandelt. 3D-Gitter werden aber ähnlich erzeugt.
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Aufruf der Funktion:
[X , Y ] = m e s h g r i d (x , y );
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
x und y geben dabei an, für welche Kombinationen aus x-Werten und
y-Werten Gitterpunkte erzeugt werden sollen. X und Y sind die
2D-Ergebnismatrizen, welche zusammen die Koordinaten der Gitterpunkte
ergeben.
Wird die Funktion wie folgt mit nur einem Parameter aufgerufen,
[X , Y ] = m e s h g r i d ( a );
% e n t s p r i c h t m e s h g r id (a , a )
dann werden für x und y die gleichen Werte verwendet (in diesem Fall die
Werte aus a).
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
24 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
Beispiele:
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
>> [X , Y ] = m e s h g r i d (1:3)
X =
1
2
3
1
2
3
1
2
3
Y =
1
1
1
2
2
2
3
3
3
>> [X , Y ]
X =
-2
-2
-2
Y =
-1
0
1
= m e s h g r i d ( -2:2 , -1:1)
-1
-1
-1
0
0
0
1
1
1
2
2
2
-1
0
1
-1
0
1
-1
0
1
-1
0
1
Anwendungssoftware III (MATLAB) – SS 2014
25 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
Beispiel:
2D Plots
-1
Weitere Funktionen zur
Visualisierung
3D Plots
y-Werte
Eigenschaften von Plots
Erweiterte Eigenschaften
[X, Y] = meshgrid(-1:2, 1:3)
x-Werte
Einfaches Plotten
0
1
2
1
2
X=
-1
-1
-1
0
0
0
1
1
1
2
2
2
Jeder Eintrag in X entspricht
dem x-Wert des jeweiligen Gitterpunktes
(daher sind die Zeilen identisch).
Y=
1
2
3
1
2
3
1
2
3
1
2
3
Jeder Eintrag in Y entspricht
dem y-Wert des jeweiligen Gitterpunktes
(daher sind die Spalten identisch).
3
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Gitterpunkt (0,2)
Export und Druck von
Grafiken
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
26 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Vektorfelder visualisieren
In MATLAB kann man mit dem Befel quiver auch Vektorfelder visualisieren.
Dazu benötigt man im einfachsten Fall
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
Startpunkte der Vektoren
die Vektoren selbst
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
So erzeugt folgendes Beispiel ein Vektorfeld, dessen Vektoren tangential zu
einem Kreis um den Ursprung sind. Weiters sind die Vektorlängen durch den
entsprechenden Kreisradius gegeben (entspricht dem Geschwindigkeitsfeld
eines Rades, welches sich im Uhrzeigersinn dreht):
>>
>>
>>
>>
[X , Y ] = m e s h g r i d ( -2:0.5:2); %
quiver (X , Y , -Y , X );
%
grid
%
axis equal % A c h s e n s k a l i e r u n g
Gitterpunkte erzeugen
plotten
Gitter e i n b l e n d e n
f ü r x und y gleich
Die Funktion meshgrid liefert in diesem Fall die Koordinatenpaare von
äquidistanten Gitterpunkten in einem regelmäßigen Gitter als Matrizen
zurück, welche durch den angegebenen Bereich definiert sind.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
27 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
Das Resultat ist folgender Plot:
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
2
1.5
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
1
0.5
Implizite Plots
0
Export und Druck von
Grafiken
−0.5
−1
−1.5
−2
−3
−2
−1
0
1
2
3
Weiterführende Informationen zum quiver-Kommando liefert doc quiver.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
28 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
2D Plots
Einfaches Plotten
Eigenschaften von Plots
Scatter-Plots erzeugen
Die Funktion scatter erlaubt es, die Werte aus zwei Vektoren x und y
gegeneinander aufzutragen (Streudiagramm).
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Um diese Funktion zu demonstrieren, erzeugen wir im folgenden Beispiel zwei
Vektoren mit Zufallszahlen und plotten diese dann mittels scatter:
>>
>>
>>
>>
x = randn (1 ,1000);
y = randn (1 ,1000);
scatter (x , y , ’r * ’ );
axis ([ -4 4 -4 4]);
Hinweis: wir sehen, dass die Funktion scatter auch Anweisungen zur
Formatierung akzeptiert (siehe plot). Dies gilt für viele der
Visualisierungs-Funktionen.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
29 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
Das Resultat ist folgender Plot:
2D Plots
Einfaches Plotten
4
Eigenschaften von Plots
Erweiterte Eigenschaften
3
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
2
1
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
0
−1
−2
−3
−4
−4
−3
−2
−1
0
1
2
3
4
Weitere Optionen für scatter (z.B. Größe der Marker oder Farbe der Marker)
sind in der Hilfe zu finden (doc scatter).
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
30 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
2D Plots
Zu den bereits vorgestellten Funktionen zum Visualisieren von Daten, gibt es
noch weitere Funktionen in MATLAB:
Einfaches Plotten
Eigenschaften von Plots
Funktion
Erweiterte Eigenschaften
bar
barh
hist
pie
stem
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Bedeutung
Balkendiagramm (Balken vertikal)
Balkendiagramm (Balken horizontal)
Histogramm (diskrete Verteilung)
Kreisdiagramm
Punkte mit Linien
Implizite Plots
Export und Druck von
Grafiken
Weitere Details zu diesen Funktionen sind in der MATLAB-Hilfe zu finden.
Beispiel:
>>
>>
>>
>>
x = randn (1 ,1000); y = randn (1 ,10);
subplot (2 ,3 ,1); bar ( y ); title ( ’ bar Plot ’ ); axis tight ;
subplot (2 ,3 ,2); barh ( y ); title ( ’ barh Plot ’ ); axis tight ;
subplot (2 ,3 ,3); hist (x ,50);
title ( ’ hist Plot ’ ); axis tight ;
>> subplot (2 ,3 ,4); pie ( abs ( y ));
title ( ’ pie Plot ’ ); axis tight ;
>> subplot (2 ,3 ,6); stem ( y ); title ( ’ stem Plot ’ ); axis tight ;
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
31 / 67
Weitere Funktionen zur Visualisierung
Plots in MATLAB
Das Beispiel erzeugt folgende Plots:
2D Plots
bar Plot
Einfaches Plotten
barh Plot
10
Eigenschaften von Plots
Erweiterte Eigenschaften
Weitere Funktionen zur
Visualisierung
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
hist Plot
60
9
1
50
8
0.5
40
7
6
0
30
5
4
−0.5
20
3
10
2
−1
1
Implizite Plots
1 2 3 4 5 6 7 8 9 10
−1 −0.5
0
0.5
1
0
−2
Export und Druck von
Grafiken
0
2
stem Plot
14%
6%
pie Plot
<2%
1%
18%
9%
1
0.5
0
4%
−0.5
19%
15%
−1
13%
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
2
4
6
8
10
32 / 67
3D-Visualisierung in MATLAB
Plots in MATLAB
2D Plots
Wie bereits erwähnt, stehen in MATLAB auch zahlreiche Funktionen zum
Visualisieren von 3D-Daten und 3D-Funktionen zur Verfügung.
3D Plots
Funktionen zur
Visualisierung
Einige dieser Funktionen sind analog zu bereits vorgestellten 2D-Funktionen:
Spezielle 3D-Funktionen
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
2D-Funktion
analoge 3D-Funktion
plot
quiver
scatter
hist
bar
barh
pie
stem
plot3
quiver3
scatter3
hist3
bar3
bar3h
pie3
stem3
Im Prinzip arbeiten die 3D-Funktionen ähnlich wie ihre 2D-Pendants – mit dem
Unterschied, dass man zusätzlich Daten angeben muss.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
33 / 67
Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Das plot3-Kommando
Im Gegensatz zu plot benötigt plot3 zusätzlich eine z-Koordinate bei den
Daten.
Folgendes Beispiel demonstriert die Verwendung von plot3:
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
>>
>>
>>
>>
>>
>>
t = l i n s p a ce (0 , 20* pi , 1000);
x = sin ( t ).* t ;
y = cos ( t ).* t ;
plot3 (x , y , 20* pi -t , ’r - - s ’ );
axis tight ;
box on ;
Hinweis: bei plot3 wird standardmäßig keine Box um den Plot gezeichnet.
Diese kann mittels box on bzw. box off aktiviert bzw. deaktiviert werden.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
34 / 67
Funktionen zur 3D-Visualisierung
Plots in MATLAB
Das Beispiel erzeugt folgenden Plot:
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Funktionsdarstellungen
60
Parametrisierte Plots
50
Implizite Plots
Export und Druck von
Grafiken
40
30
20
10
0
60
40
20
40
20
0
0
−20
−20
−40
−40
−60
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
35 / 67
Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
Dreidimensionales Vektorfeld
Die Funktion quiver3 erlaubt es, dreidimensionale Vektorfelder zu visualisieren.
3D Plots
Funktionen zur
Visualisierung
Folgendes Beispiel demonstriert die Verwendung von quiver3:
Spezielle 3D-Funktionen
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
>>
>>
>>
>>
[X , Y ] = m e s h g r id ( -2:0.1:2);
Z = peaks (X , Y ); % MATLAB Test F u n k t i o n f ü r 3D - Plots
quiver3 (X , Y , Z , 0 , 0 , Z );
axis tight ;
Export und Druck von
Grafiken
8
6
4
2
0
−2
−4
−6
2
1
0
−1
−2
M. Liedlgruber
−2
−1.5
−1
Anwendungssoftware III (MATLAB) – SS 2014
−0.5
0
0.5
1
1.5
2
36 / 67
Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
Dreidimensionaler Scatter-plot
Die Funktion scatter3 visualisiert dreidimensionale Scatter-Plots.
3D Plots
Funktionen zur
Visualisierung
Folgendes Beispiel demonstriert die Verwendung von scatter3:
Spezielle 3D-Funktionen
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
>>
>>
>>
>>
>>
>>
X = randn (1 , 1000);
Y = randn (1 , 1000);
Z = randn (1 , 1000);
S = 15./ sqrt ( X .^2+ Y .^2+ Z .^2);
s c a t t e r3 (X , Y , Z , S , ’o ’ );
axis tight ;
3
2
1
0
−1
−2
−3
3
2
1
0
−1
−2
−3
M. Liedlgruber
−3
−2
Anwendungssoftware III (MATLAB) – SS 2014
−1
0
1
2
3
4
37 / 67
Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
Verschiedene Funktionen
Die Verwendung der Funktionen bar3, bar3h, hist3, pie3 und stem3 wird im
Folgenden wieder anhand eines kurzen Beispiels demonstriert:
>> x = randn (1000 ,2);
>> y = randn (1 ,10);
>> subplot (2 ,3 ,1); bar3 ( y );
title ( ’ bar3 Plot ’ ); axis tight ;
>> subplot (2 ,3 ,2); bar3h ( y );
title ( ’ bar3h Plot ’ ); axis tight ;
>> subplot (2 ,3 ,3); hist3 (x ,[50 50]);
title ( ’ hist3 Plot ’ ); axis tight ;
>> subplot (2 ,3 ,4); pie3 ( abs ( y ));
title ( ’ pie3 Plot ’ ); axis tight ;
>> subplot (2 ,3 ,6); stem3 ( y );
title ( ’ stem3 Plot ’ ); axis tight ;
Anwendungssoftware III (MATLAB) – SS 2014
38 / 67
Funktionen zur 3D-Visualisierung
Plots in MATLAB
Das Beispiel erzeugt folgende Plots:
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
39 / 67
Spezielle Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Neben den vorgestellten Funktionen, welche sowohl für 2D-Plots als auch für
3D-Plots existieren, gibt es auch Funktionen, welche speziell für die
3D-Visualisierung von Daten verwendet werden.
Folgende Funktionen stehen zur Verfügung:
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
mesh
surf
contour
Hinweis: während mesh und surf 3D-Plots generieren, ist das Resultat bei
contour ein 2D-Plot (obwohl 3D-Daten zur Visualisierung verwendet werden).
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
40 / 67
Spezielle Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Das mesh-Kommando
Das mesh-Kommando wird in MATLAB verwendet um dreidimensionale Gitter zu
zeichnen. Die verwendete Farbe ist dabei proportional zur jeweiligen Gitterhöhe.
Ein Beispiel:
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
>> [X , Y ] = m e s h g r id ( -2:0.1:2);
>> Z = peaks (X , Y );
>> mesh (X , Y , Z );
Export und Druck von
Grafiken
10
5
0
−5
−10
2
1.5
1
0.5
0
−0.5
−1
−1.5
−2
M. Liedlgruber
−2
−1.5
−1
Anwendungssoftware III (MATLAB) – SS 2014
−0.5
0
0.5
1
1.5
2
41 / 67
Spezielle Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Das surf-Kommando
Das surf-Kommando ist ähnlich dem mesh-Kommando. Im Gegensatz zu mesh
gibt es aber zwei wesentlich Unterschiede:
die Gitterflächen werden gefüllt dargestellt
man kann die verwendete Methode zur Farbdarstellung abändern
Wie auch bei mesh, ist die verwendete Farbe proportional zur jeweiligen Höhe im
Plot.
Um die Art der Farbdarstellung zu verändern verwendet man das Kommando
shading:
shading flat: jedes Gitterkästchen wird mit einer konstanten Farbe
gefüllt.
shading faceted: wie shading flat, jedoch wird zusätzlich noch ein
Gitternetz eingeblendet.
shading interp: wie shading flat, jedoch werden die Farben nun
interpoliert (ergibt einen Farbverlauf innerhalb der Gitterkästchen).
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
42 / 67
Spezielle Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
Das folgende Beispiel demonstriert die Verwendung von surf mit verschiedenen
Arten der Farbdarstellung:
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
[X , Y ] = m e s h g r id ( -2:0.1:2);
Z = peaks (X , Y );
subplot (2 ,2 ,1); surf (X , Y , Z );
shading flat ;
% F a r b d a r s t e l l u n g ’ flat ’
title ( ’ shading flat ’ );
subplot (2 ,2 ,2); surf (X , Y , Z );
shading faceted ; % F a r b d a r s t e l l u n g ’ faceted ’
title ( ’ shading faceted ’ );
subplot (2 ,2 ,3); surf (X , Y , Z );
shading interp ; % F a r b d a r s t e l l u n g ’ interp ’
title ( ’ shading interp ’ );
Anwendungssoftware III (MATLAB) – SS 2014
43 / 67
Spezielle Funktionen zur 3D-Visualisierung
Plots in MATLAB
Das Beispiel ergibt folgende Plots:
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
44 / 67
Spezielle Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Konturplots erzeugen
Mit Hilfe der Funktion contour kann man die Höhenlinie zu einer gegebenen
dreidimensionalen Funktion darstellen. Das Ergebnis ist aber ein 2D-Plot.
Wichtig: jede Höhenlinie entspricht einem konstanten z-Wert.
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Werden contour nur die z-Werte übergeben, ermittelt MATLAB automatisch die
Grenzen für die x-Achse und die y-Achse.
Im folgenden Beispiel erzeugen wir ein regelmäßiges Punktegitter und plotten mit
Hilfe von contour die Höhenlinien zur dreidimensionalen Funktion z = |x ∗ y|:
>>
>>
>>
>>
[X , Y ] = m e s h g r i d ( -2:0.01:2); % G i t t e r p u n k t e e r z e u g en
contour (X , Y , abs ( X .* Y ) , 50);
axis tight ;
c o l o r b ar ;
Der letzte Parameter (im Beispiel 50) gibt an, wieviele Höhenlinien gezeichnet
werden sollen (Feinheit der Darstellung).
colorbar blendet eine Farbleiste für den Wertebereich ein (colorbar off
M. Liedlgruber
entfernt diese wieder).
Anwendungssoftware III (MATLAB) – SS 2014
45 / 67
Spezielle Funktionen zur 3D-Visualisierung
Plots in MATLAB
Das Resultat ist folgender Plot:
2D Plots
2
3D Plots
Funktionen zur
Visualisierung
3.5
1.5
Spezielle 3D-Funktionen
Funktionsdarstellungen
3
1
Parametrisierte Plots
2.5
0.5
Implizite Plots
Export und Druck von
Grafiken
0
2
−0.5
1.5
−1
1
−1.5
−2
−2
0.5
−1.5
−1
−0.5
0
0.5
1
1.5
2
Hinweis: die Farben der Höhenlinien entsprechen der entsprechenden Höhe.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
46 / 67
Spezielle Funktionen zur 3D-Visualisierung
Plots in MATLAB
2D Plots
Zusätzlich zur Funktion contour gibt es noch die Funktionen contourf
(gefüllter Konturplot) und contour3 (Höhenlinien dreidimensional dargestellt).
3D Plots
Funktionen zur
Visualisierung
Spezielle 3D-Funktionen
Funktionsdarstellungen
>>
>>
>>
>>
subplot (1 , 2 , 1); c o n t o u r f ( peaks , 20);
title ( ’ c o n t o u rf Plot ’ );
subplot (1 , 2 , 2); c o n t o u r 3 ( peaks , 20);
title ( ’ c o n t o u r3 Plot ’ );
Parametrisierte Plots
Implizite Plots
Das Resultat ist folgende Figure:
Export und Druck von
Grafiken
contour3 Plot
contourf Plot
10
40
30
0
20
−10
10
40
20
10
M. Liedlgruber
20
30
40
Anwendungssoftware III (MATLAB) – SS 2014
10
20
30
40
47 / 67
Function-Handles in MATLAB
Plots in MATLAB
2D Plots
In MATLAB kann man Verweise auf Funktionen erstellen (sogenannte
Function-Handles).
3D Plots
Funktionsdarstellungen
Derartige Verweise werden mit Hilfe des @-Symbols erzeugt:
Function Handles
Function Functions
Parametrisierte Plots
handle = @ F u n k t i o n s n a m e
% V a r i a n te 1
handle = @ ( A r g u m e n t e ) F u n k t i on % V a r i a n te 2
Implizite Plots
Export und Druck von
Grafiken
Bei Variante 1 wird ein Verweis auf eine existierende Funktion erstellt (z.B.
sin). Zum Beispiel:
>> f = @sin ;
>> f ( pi /2)
ans =
1
Bei Variante 2 (sogenannte anonyme Funktion) wird ein Verweis auf eine
Funktion erstellt welche im Zuge von Funktion definiert wird. Diese Funktion
kann auch ein oder mehrere Eingabeargumente haben.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
48 / 67
Function-Handles in MATLAB
Plots in MATLAB
2D Plots
So kann mit Hilfe von Variante 2 die Beispiel-Funktion f (x) = x2 durch
folgende Eingabe definiert werden:
3D Plots
Funktionsdarstellungen
>> f = @ ( x ) x .^2;
Function Handles
Function Functions
Die Funktion kann dann wie folgt aufgerufen werden:
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
>> f (1:4)
ans =
1
4
9
16
Man kann aber auch mehrere Argumente verwenden, also zum Beispiel:
>> f = @ (x , y , z ) x .^2+ y .^2+ z .^2;
Besonders interessant sind solche Function-Handles für sogenannte Function
Functions.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
49 / 67
Function Functions in MATLAB
Plots in MATLAB
2D Plots
In MATLAB sind Function Functions Funktionen, welche als Argument eine
Funktion benötigen.
3D Plots
Funktionsdarstellungen
Function Handles
Function Functions
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
Ein Beispiel für eine solche Funktion in MATLAB ist fplot. Mit Hilfe dieser
Funktion kann man Graphen mathematischer Funktionen zeichnen.
Will man also zum Beispiel die Funktion f (x) = x2 im Intervall [−2, 2]
zeichnen, kann man dies wie folgt erreichen:
>> f = @ ( x ) x .^2;
>> fplot (f , [ -2 , 2]);
Bei MATLAB-eigenen Funktionen entfällt die Definition der Funktion.
Den Sinus im Intervall [0, 2π] kann man zum Beispiel wie folgt zeichnen:
>> fplot ( @sin , [0 , 2* pi ]);
Weitere Informationen zu fplot (zum Beispiel Formatierung des Plots), findet
man in der MATLAB-Hilfe (siehe doc fplot).
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
50 / 67
Function Functions in MATLAB
Plots in MATLAB
Beispiel zu fplot:
2D Plots
3D Plots
Funktionsdarstellungen
Function Handles
Function Functions
Parametrisierte Plots
>>
>>
>>
>>
subplot (1 , 2 , 1);
fplot ( @ ( x ) exp ( - x .^2) , [ -2 , 2]);
subplot (1 , 2 , 2);
fplot ( @sin , [ - pi , pi ]);
Diese Anweisungen erzeugen folgende Figure:
Implizite Plots
Export und Druck von
Grafiken
1
1
0.8
0.5
0.6
0
0.4
−0.5
0.2
0
−2
−1
0
1
2
−1
−3
−2
−1
0
1
2
3
Hinweis: fplot akzeptiert auch Funktionsterme, welche als String gegeben
sind. Also zum Beispiel:
>> fplot ( ’x .^2 ’ , [ -2 , 2]);
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
51 / 67
Function Functions in MATLAB
Plots in MATLAB
2D Plots
Eine MATLAB-Funktion, welche ähnlich wie fplot funktioniert, ist ezplot
(Easy-Plot).
3D Plots
Funktionsdarstellungen
Es gibt zwei entscheidende Unterschiede zwischen diesen Funktionen:
Function Handles
Function Functions
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
Funktionsvariablen
während fplot nur Funktionsterme in einer Variable unterstützt, können bei
ezplot mehrere Variablen verwendet werden.
Implizite Funktionen
im Gegensatz zu fplot, unterstützt ezplot auch implizite Funktionen.
Anwendungssoftware III (MATLAB) – SS 2014
52 / 67
Function Functions in MATLAB
Plots in MATLAB
2D Plots
3D Plots
Weitere Function Functions zum einfachen Zeichnen von Funktionen sind
ezmesh und ezsurf. Diese Funktionen arbeiten ähnlich wie ezplot,
generieren aber 3D-Gitterplots.
Funktionsdarstellungen
Function Handles
Function Functions
Parametrisierte Plots
>> f = @ (x , y ) x .* exp ( - x .^2 - y .^2);
>> subplot (1 , 2 , 1); ezmesh ( f );
>> subplot (1 , 2 , 2); ezsurf ( f );
Implizite Plots
Export und Druck von
Grafiken
Diese Anweisungen erzeugen folgende Figure:
2
2
2
x exp(−x −y )
2
x exp(−x −y )
0.5
0.5
0
0
−0.5
−0.5
2
2
2
0
−2
y
0
−2
x
2
0
−2
y
0
−2
x
Wir sehen: wir erhalten automatisch Achsenbeschriftungen und einen Titel
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
53 / 67
Parametrisierte Kurven in MATLAB
Plots in MATLAB
2D Plots
Mit Hilfe der Funktionen ezplot und ezplot3 kann man in MATLAB auch
parametrisierte Funktionen plotten.
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Zur Erinnerung: bei einer parametrisierten Kurve können alle Punkte der Kurve
durch eine Funktion in einem oder mehreren Parametern durchlaufen werden.
Kurven
Flächen
Zum Beispiel definieren die Funktionen
Implizite Plots
Export und Druck von
Grafiken
x = cos(3t)cos(t)
y = cos(3t)sin(t)
eine dreiblättrige Kurve (Trochoide), auf welcher die Punkte nur vom Parameter t
abhängig sind.
In MATLAB:
>> x = @ ( t ) cos (3* t ).* cos ( t );
>> y = @ ( t ) cos (3* t ).* sin ( t );
>> ezplot (x , y , [0 , 2* pi ]); % wir ben ö tigen nun 2 F u n k t i o n e n
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
54 / 67
Parametrisierte Kurven in MATLAB
Plots in MATLAB
Wir erhalten folgenden Plot der dreiblättrigen Kurve:
2D Plots
x = cos(3 t) cos(t), y = cos(3 t) sin(t)
3D Plots
Funktionsdarstellungen
0.8
Parametrisierte Plots
0.6
Kurven
Flächen
0.4
Export und Druck von
Grafiken
0.2
y
Implizite Plots
0
−0.2
−0.4
−0.6
−0.8
−1
−0.5
0
0.5
1
x
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
55 / 67
Parametrisierte Kurven in MATLAB
Plots in MATLAB
2D Plots
Die Funktion ezplot3 funktioniert gleich, benötigt aber drei Funktionen, da
das Ergebnis ein 3D-Plot ist.
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Kurven
Flächen
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
Interessant: bei ezplot3 kann man zusätzlich zu den Funktionen und Grenzen
noch den Parameter ’animate’ angeben. Dann wird eine Animation angezeigt,
bei welcher ein Punkt die gezeichnete Kurve durchläuft.
Zum Beispiel:
>>
>>
>>
>>
x = @ ( t ) exp ( -0.2* t ).* cos ( t );
y = @ ( t ) exp ( -0.2* t ).* sin ( t );
z = @(t) t;
ezplot3 (x , y , z , [0 , 20]); % ben ö tigen 3 F u n k t i o n e n
Anwendungssoftware III (MATLAB) – SS 2014
56 / 67
Parametrisierte Kurven in MATLAB
Plots in MATLAB
Der entsprechende Plot:
2D Plots
x = exp(−0.2 t) cos(t), y = exp(−0.2 t) sin(t), z = t
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Kurven
20
Flächen
Implizite Plots
15
z
Export und Druck von
Grafiken
10
5
0
1
0.5
0
y
M. Liedlgruber
−0.5
−0.6
−0.4
Anwendungssoftware III (MATLAB) – SS 2014
−0.2
0.2
0
0.4
0.6
0.8
1
x
57 / 67
Parametrisierte Flächen in MATLAB
Plots in MATLAB
2D Plots
Neben parametrisierten Kurven, kann man in MATLAB mit Hilfe der Funktionen
ezmesh und ezsurf auch parametrisierte Flächen im R3 zeichnen.
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Beispiel:
Ein Torus wird in Parameterform folgendermaßen angeschrieben:
Kurven
Flächen
x
y
z
Implizite Plots
Export und Druck von
Grafiken
= (a + b cos θ) cos φ
= (a + b cos θ) sin φ
= b sin θ
In MATLAB kann man einen solchen Torus folgendermaßen zeichnen:
>>
>>
>>
>>
>>
>>
>>
M. Liedlgruber
x = @ ( theta , phi ) (10+4* cos ( theta )).* cos ( phi );
y = @ ( theta , phi ) (10+4* cos ( theta )).* sin ( phi );
z = @ ( theta , phi ) 4* sin ( theta );
subplot (1 , 2 , 1); ezmesh (x , y , z );
title ( ’ ezmesh ’ ); axis equal ;
subplot (1 , 2 , 2); ezsurf (x , y , z );
title ( ’ ezsurf ’ ); axis equal ;
Anwendungssoftware III (MATLAB) – SS 2014
58 / 67
Parametrisierte Flächen in MATLAB
Plots in MATLAB
Die entsprechende Figure:
2D Plots
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Kurven
Flächen
Implizite Plots
Export und Druck von
Grafiken
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
59 / 67
Implizite Kurven in MATLAB
Plots in MATLAB
2D Plots
Wie bereits schon erwähnt, lassen sich mit der Funktion ezplot auch implizite
Kurven darstellen.
3D Plots
Funktionsdarstellungen
Der Einheitskreis (Radius 1) ist zum Beispiel folgendermaßen definiert:
Parametrisierte Plots
f (x, y) = x2 + y 2 − 1
Implizite Plots
Kurven
Flächen
Export und Druck von
Grafiken
Diese Funktion kann nicht in der Form y =
√f (x) angeschrieben werden, da es
für jedes x die zwei Möglichkeiten y = ± 1 − x2 gibt.
In MATLAB plottet man diese implizite Funktion mittels:
>> ezplot ( ’x .^2+ y .^2 -1 ’ , [ -1 , 1]);
>> axis equal ;
Weitere Beispiele:
>>
>>
>>
>>
M. Liedlgruber
subplot (1 , 2 , 1);
ezplot ( ’ -x ^2/4+ y ^2/25 -1 ’ , [ -15 , 15]);
subplot (1 , 2 , 2);
ezplot ( ’x ^4+ y ^4 -14^4 ’ , [ -15 , 15]);
Anwendungssoftware III (MATLAB) – SS 2014
60 / 67
Implizite Kurven in MATLAB
Plots in MATLAB
Der Einheitskreis sieht dann (wie erwartet) so aus:
2D Plots
2
2
x +y −1 = 0
3D Plots
1
Funktionsdarstellungen
0.5
Parametrisierte Plots
0
y
Implizite Plots
Kurven
−0.5
Flächen
Export und Druck von
Grafiken
−1
−1
−0.5
0
x
0.5
1
Weitere Beispiele:
2
2
4
15
15
10
10
5
5
0
0
−5
−5
−10
−10
−15
M. Liedlgruber
−10
0
x
4
4
x +y −14 = 0
y
y
−x /4+y /25−1 = 0
10
−15
−10
Anwendungssoftware III (MATLAB) – SS 2014
0
x
10
61 / 67
Implizite Flächen in MATLAB
Plots in MATLAB
2D Plots
Neben impliziten Kurven können in MATLAB auch implizite Flächen gezeichnet
werden.
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Da eine nähere Behandlung der entsprechenden Funktionen aber zu weit führen
würde, soll dies im Folgenden nur anhand eines Beispiels demonstriert werden
(Beispiel aus der MATLAB-Hilfe).
Kurven
Flächen
Export und Druck von
Grafiken
>>
>>
>>
>>
>>
>>
>>
>>
[x , y , z , v ] = flow ;
p = patch ( i s o s u r f a c e (x , y , z , v , -3));
i s o n o r m a l s (x , y , z , v , p )
set (p , ’ F a c e C o l or ’ , ’ red ’ , ’ E d g e C o l o r ’ , ’ none ’ );
daspect ([1 1 1])
view (3); axis tight
c a m l i g ht
l i g h t i ng gouraud
Nähere Informationen zu impliziten Flächen findet man in der MATLAB-Hilfe
mittels doc isosurface.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
62 / 67
Implizite Flächen in MATLAB
Plots in MATLAB
Das soeben vorgestellte Beispiel erzeugt folgenden Plot:
2D Plots
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Implizite Plots
Kurven
Flächen
Export und Druck von
Grafiken
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
63 / 67
Exportieren und Druck von Grafiken
Plots in MATLAB
2D Plots
Hat man in MATLAB eine oder mehrere Grafiken erzeugt, will man diese häufig
zur Weiterverwendung speichern und/oder drucken.
3D Plots
Funktionsdarstellungen
Dies kann prinzipiell über zwei Wege erreicht werden:
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
über die Oberfläche von MATLAB
durch Kommandos (Kommandozeile oder m-File)
GUI Methode
Kommandos
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
64 / 67
Druck und Export über die Oberfläche
Plots in MATLAB
2D Plots
Um Grafiken zu exportieren, unterstützt MATLAB eine Vielzahl von
Dateiformaten.
3D Plots
Funktionsdarstellungen
Parametrisierte Plots
Die vermutlich am häufigsten verwendeten Formate sind jpeg, fig, png, pdf und
eps.
Implizite Plots
Export und Druck von
Grafiken
GUI Methode
Kommandos
M. Liedlgruber
Ist eine Figure vorhanden, kann man das Exportieren über den Menüpunkt ’File
→ Save As ...’ vornehmen:
Anwendungssoftware III (MATLAB) – SS 2014
65 / 67
Druck und Export über die Oberfläche
Plots in MATLAB
Um eine Grafik zu drucken, geht man ähnlich vor.
2D Plots
3D Plots
Funktionsdarstellungen
Den Druck einer Figure kann man in einer Figure über den Menüpunkt ’File →
Print’ vornehmen:
Parametrisierte Plots
Implizite Plots
Export und Druck von
Grafiken
GUI Methode
Kommandos
Hinweis: über den Menüpunkt ’File → Print Preview ...’ erreicht man einen
Dialog, welcher detailierte Einstellungen zum Druck erlaubt und eine
Druckvorschau anzeigt. Ist dann alles wie gewünscht eingestellt, kann man über
diesen Dialog auch den Druck auslösen.
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
66 / 67
Druck und Export mittels Kommandos
Plots in MATLAB
2D Plots
Um Grafiken aus einem m-File oder von der Konsole aus zu drucken oder zu
exportieren, gibt es das Kommando print.
3D Plots
Funktionsdarstellungen
Den Export der aktuell aktiven Figure erreicht man zum Beispiel mittels
Parametrisierte Plots
>> print - depsc2 MyFile . eps
Implizite Plots
Export und Druck von
Grafiken
GUI Methode
Dieses Kommando erzeugt die Grafikdatei MyFile.eps im aktuellen
MATLAB-Verzeichnis.
Kommandos
Oder:
>> print - dpng MyFile . png
Dieses Kommando erstellt die Datei MyFile.png im aktuellen
MATLAB-Verzeichnis.
Mit print kann man auch direkt auf einen Drucker drucken. Da dies jedoch nur
sehr selten von Nutzen sein wird und viele Konfigurationsmöglichkeiten
angeboten werden, verweise ich hier auf die MATLAB-Hilfe (doc print).
M. Liedlgruber
Anwendungssoftware III (MATLAB) – SS 2014
67 / 67

Documentos relacionados