+ All Categories
Home > Documents > Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M....

Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M....

Date post: 06-Feb-2018
Category:
Upload: phungdiep
View: 218 times
Download: 1 times
Share this document with a friend
67
M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB) V – Visualisierung und Plots in MATLAB Michael Liedlgruber Fachbereich Computerwissenschaften Universit ¨ at Salzburg Sommersemester 2014
Transcript
Page 1: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67

Anwendungssoftware III (MATLAB)V – Visualisierung und Plots in MATLAB

Michael LiedlgruberFachbereich Computerwissenschaften

Universitat Salzburg

Sommersemester 2014

Page 2: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Plots in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 2 / 67

MATLAB verfugt uber sehr m achtige M oglichkeiten zur Visualisierung vonDaten und Funktionen. Dies ist einer der Grunde fur den Erfolg von MATLAB.

Einige der Moglichkeiten:

� Visualisierung von Daten� Explizite Funktionen (sind vor allem in der Lehre interessant)� Plots von statistischen Daten

Dabei unterstutzt MATLAB sowohl Visualisierungen in 2D als auch in 3D .

Dabei unterscheidet man zwischen Plots und Figuren (Figures):

� Ein Plot enthalt die Darstellung einer Funktion oder von Daten.� Eine Figur enthalt einen oder mehrere Plots.

Page 3: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 3 / 67

Das plot-KommandoEine haufig verwendete Funktion zum Visualisieren von Daten ist dasplot-Kommando.

Dieser Funktion werden im einfachsten Fall Koordinaten von Punkten in derEbene ubergeben. Diese werden dann durch Linien verbunden .

>> plot(x, y)

Den Sinus im Intervall von [0, 2π] kann man zum Beispiel mit folgendenKommandos visualisieren:

>> x = linspace(0, 2*pi , 50);

>> y = sin(x);

>> plot(x, y)

In diesem Beispiel wurden die x-Werte im Intervall auf 50 aquidistante Punkteverteilt.

Hinweis: Man kann bei plot auch einfach nur y angeben. Dann wird fur xautomatisch 1:n verwendet (Index uber y), wobei n die Lange von y ist.

Page 4: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 4 / 67

Mit Hilfe des title-Kommandos kann man dem Plot nun noch einen Titelgeben :

>> title(’Der Sinus von 0 bis 2pi’);

Will man zur besseren Orientierung im Plot noch ein Gitter einblenden (oderwieder ausblenden), verwendet man dazu das Kommando grid:

>> grid

Das fertige Resultat sieht dann wie folgt aus:

0 1 2 3 4 5 6 7−1

−0.5

0

0.5

1Der Sinus von 0 bis 2pi

Page 5: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 5 / 67

Fuhrt man in einer Figure erneut ein Plot-Kommando aus, wird generell der altePlot vom neuen ersetzt . Um dies zu verhindern, kann man unter anderem denBefehl hold verwenden:

>> hold on; % ab jetzt nichts mehr ersetzen

>> Plot -Kommando(s)

>> hold off; % Ersetzungssperre wieder aufheben

Zum Beispiel:

>> hold on; % ab jetzt nichts mehr ersetzen

>> plot(sin(linspace(0, 2*pi, 50))); % Sinus

>> plot(cos(linspace(0, 2*pi, 50))); % Kosinus

>> hold off; % Ersetzungssperre wieder aufheben

0 5 10 15 20 25 30 35 40 45 50−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

Page 6: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 6 / 67

Eine weitere Moglichkeit, mehrere Plots zu uberlagern, besteht in einererweiterten Verwendung des plot-Kommandos. So kann man zum Beispielmittels

>> plot(x1, y1 , x2, y2)

zwei Plots auf einmal zeichnen (uberlagern).

Dabei wird der erste Plot durch x1 und y1 definiert, wahrend der zweite Plotdurch x2 und y2 definiert wird.

Auf diese Art k onnen auch mehr als zwei Plots kombiniert werden.

Page 7: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 7 / 67

Subplots erzeugenEin weitere, sehr nutzliche Funktion ist subplot. Diese Funktion erlaubt es,mehrere Plots in einer Figur zu platzieren (Matrix-Anordnung).

Dabei benotigt man standardmaßig drei Parameter:

� Anzahl der Zeilen (Anzahl der Plot-Reihen)� Anzahl der Spalten (Anzahl der Plot-Spalten)� Index des aktuellen Plots (die Indizierung lauft Zeile fur Zeile von links oben,

nach rechts unten)

Die generelle Verwendung des Kommandos sieht wie folgt aus (fur r Zeilen und cSpalten, mit n = r · c):

>> subplot(r, c, 1); % 1. Plot aktiv

>> Plot -Kommando(s)

>> subplot(r, c, 2); % 2. Plot aktiv

>> Plot -Kommando(s)

>> ...

>> subplot(r, c, n); % n-ter Plot aktiv

>> Plot -Kommando(s)

Page 8: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 8 / 67

Schematisch sieht eine Figur bei Verwendung des Kommandos subplotfolgendermaßen aus:

...

......

...c Spalten

r Z

eile

nPlot 1

Plot

((r-1)*c)+1

Plot c

Plot r*c

Plot 2

Plot

((r-1)*c)+2

...

Page 9: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 9 / 67

Im folgenden Beispiel stellen wir funf Plots in einer Figur dar:

>> subplot(2, 3, 1); % 2 Zeilen und 3 Spalten (1. Plot)

>> plot(sin(linspace(0, 2*pi, 50))); % Sinus

>> subplot(2, 3, 2); % 2. Plot

>> plot(cos(linspace(0, 2*pi, 50))); % Kosinus

>> subplot(2, 3, 3); % 3. Plot

>> plot(tan(linspace(0, 2*pi, 50))); % Tangens

>> subplot(2, 3, 4); % 4. Plot

>> plot(linspace(1, 10, 50).^2); % x^2

>> subplot(2, 3, 5); % 5. Plot

>> plot (1./( linspace(0, 10, 50))); % 1./x

Das Ergebnis sieht wie folgt aus:

0 10 20 30 40 50−1

−0.5

0

0.5

1

0 10 20 30 40 50−1

−0.5

0

0.5

1

0 10 20 30 40 50−50

0

50

0 10 20 30 40 500

50

100

0 10 20 30 40 500

2

4

6

Page 10: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 10 / 67

In MATLAB kann man beim plot-Kommando neben den Daten auch Angabenbezuglich des gewunschten Aussehens eines Plots machen. Im Allgemeinensieht das so aus (in Form von Kurzel):

>> plot(x1, y1 , format1 , x2 , y2, format2)

Dabei sind format1 und format2 Strings, welche verschiedene Angaben zuden Plots enthalten konnen:

� Linienfarbe: die Farbe, welche fur 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.

Folgende Linienfarben konnen verwendet werden:Kurzel Farbe

r Rotg Grunb Blauc Cyan

Kurzel Farbe

m Magentay Gelbk Schwarz

Page 11: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 11 / 67

Als Markertypen stehen unter anderem folgende Zeichen zur Verfugung:

Kurzel Markertyp

o Kreisx X+ Plus-Zeichen∗ Sterns Quadratd Diamantform (3)

Kurzel Markertyp

v Umgekehrtes Dreieck (▽)ˆ Dreieck (nach oben) (△)< Dreieck (nach links) (⊳)> Dreieck (nach rechts) (⊲)p Pentagrammh Hexagramm

Und fur Linientypen konnen folgende Kurzel verwendet werden.

Kurzel Linientyp

− durchgehend (Standard): gepunktet−. Strich-Punkt-Strich-Punkt-...−− gestrichelt

Page 12: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Einfaches Plotten in MATLAB

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 12 / 67

Beispiel:Die Eingaben

>> x = linspace(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:

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 10

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 verschiedeneMarkertypen fur verschiedene Kurven verwenden. Dies erleichtert dieUnterscheidung von Kurven, selbst beim S/W-Druck.

Page 13: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Verschiedene Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 13 / 67

Wir haben bereits gesehen, wie man den Titel eines Plots andern kann (title)und wie man ein Gitter einblenden kann (grid).

Es gibt aber noch andere Funktionen, mit welchen man diverse Eigenschaftenvon Plots einstellen kann:

� legend: erlaubt das Hinzufugen einer Legende im Plot.

>> legend(Str1 , Str2 , ...)

Dabei wird fur jede einzelne Kurve eine Beschriftung akzeptiert (als String).� xlabel, ylabel und zlabel: Achsenbeschriftungen hinzufugen oder

andern. Jede dieser Funktionen nimmt einen String als Argument. ZumBeispiel:

>> xlabel(’Beschriftung der x-Achse’);

Page 14: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Verschiedene Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 14 / 67

� axis: ohne Argument liefert Funktion die aktuellen Achsenbereiche desaktiven Plots als Vektor der Form[xlow xhigh ylow yhigh zlow zhigh] (bei 2D-Plots werden dieGrenzen der z-Achse nicht zuruckgegeben). Zum Beispiel:

>> axis

ans =

0 1 0 1

Will man die aktuellen Achsenbereiche andern, ubergibt man axis einfachdie neuen Grenzen in der gleichen Form wie sie zuruckgeliefert werden(Vektor). Das Beispiel

>> axis([-1 1 -1 1]);

wurde 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 Plotpassen.

Page 15: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Verschiedene Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 15 / 67

Beispiel:Die folgenden Kommandos

>> x = linspace(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’); % Achsenbeschriftungen

erzeugen folgenden Plot:

0 1 2 3 4 5 6−1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

1

x−Wert

Wer

t

sin(x)cos(x)

Page 16: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Verschiedene Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 16 / 67

Es gibt noch zu plot ahnliche Funktionen, welche aber auf verschiedene Artendie Koordinatenachsen eines Plots skalieren (aber wie plot verwendet werden):

� loglog: x-Achse und y-Achse logarithmisch� semilogx: x-Achse logarithmisch� semilogy: y-Achse logarithmisch

>> x = linspace(0 ,10 ,100);

>> subplot (1 ,2 ,1); plot(exp(x)); title(’y linear’);

>> subplot (1 ,2 ,2); semilogy(exp(x)); title(’y log’);

0 20 40 60 80 1000

0.5

1

1.5

2

2.5x 10

4 y linear

0 20 40 60 80 10010

0

101

102

103

104

105

y log

Page 17: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Verschiedene Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 17 / 67

Plotten mit zwei y-AchsenWill man in einem Plot zwei Datensatze darstellen, welche aber eineverschiedene Skalierung benutzen sollen, hilft das Kommando plotyy weiter.

Diese Funktion plottet zwei Satze von Daten. Dabei gilt:

� die Datensatze werden in zwei verschiedenen Farben gezeichnet� fur jeden Datensatz wird eine y-Achse angezeigt (links und rechts)� entsprechend den Farben fur die Datensatze, werden auch die Farben der

entsprechenden Achsen ge andert

So ergibt folgendes Beispiel ...

>> x = linspace(0, 10, 100);

>> y = 3*exp( -0.5*x);

>> plotyy(x, y, x, y, ’plot’, ’semilogy’)

Page 18: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Verschiedene Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 18 / 67

... folgenden Plot, wobei die linke y-Achse linear skaliert ist, wahrend die rechtey-Achse logarithmisch skaliert ist:

0 2 4 6 8 100

0.5

1

1.5

2

2.5

3

0 2 4 6 8 1010

−2

10−1

100

101

Weitere Moglichkeiten der Achsenformatierung bei plotyy findet man in derMATLAB-Hilfe (doc plotyy).

Page 19: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Verschiedene Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 19 / 67

KoordinatentumwandlungenZuguterletzt gibt es folgende Funktionen, um Koordinaten von einem System inein anderes umzuwandeln:

� cart2pol: kartesische Koordinaten → Polarkoordinaten� pol2cart: Polarkoordinaten → kartesische Koordinaten� cart2sph: kartesische Koordinaten → spherische Koordinaten� sph2cart: spherische Koordinaten → kartesische Koordinaten

Zwei gleiche Plots – aber einmal im kartesischen System und einmal mitPolarkoordinaten geplottet:

>> theta = linspace(0,2*pi ,100);

>> rho = sin(2*theta).*cos(2*theta);

>> [x,y] = pol2cart(theta ,rho); % Umwandeln

>> subplot(1, 2, 1);

>> plot(x, y); % Plot im kartesischen System

>> title(’Kartesisches System’);

>> subplot(1, 2, 2);

>> polar(theta , rho , ’r’) % Polarkoordinaten -Plot

>> title(’Polarkoordinaten’);

Page 20: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Verschiedene Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 20 / 67

Dieses Beispiel ergibt folgende Figur:

−0.5 0 0.5−0.5

0

0.5Kartesisches System

0.25

0.5

30

210

60

240

90

270

120

300

150

330

180 0

Polarkoordinaten

Page 21: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Erweiterte Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 21 / 67

Um erweiterte Eigenschaften von Plots und Figuren zu setzen, gibt es in MATLABsogenannte Handles . Einfach ausgedruckt, sind Handles Verweise auf Elementevon Figuren und Plots.

Die Handles erlauben es dem Benutzer, jede Eigenschaft von Figures und Plots,welche mit dem Figure-Property-Editor geandert werden kann, auch mitKommandos zu verandern. Zum Beispiel:

� Schriftarten und Schriftgroßen in Plots� eigene Farben fur Plots� Linienbreite bei Plots

Eine detailierte Beschreibung aller moglichen Einstellungen erhalt man mittelsdoc figure.

Hinweis: Man kann auch eine Figure mit dem Figure-Property-Editor verandernund sich alle MATLAB-Kommandos fur die Figure in ein m-File exportieren lassen(im Menu des Figure Fensters unter “File → Generate m-File”). Zum Lernen derKommandos ideal.

Page 22: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Erweiterte Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 22 / 67

Beispiel:

>> 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],’LineWidth’,2,’LineStyle’,’:’)

>> set(h(2),’Color’ ,[1 .6 0],’LineWidth’,2,’LineStyle’,’-.’)

>> set(t,’FontSize’ ,14’,’FontName’,’Arial’, ...

’FontWeight’,’bold’)

>> set(l,’FontSize’ ,14’,’FontName’,’Arial’, ...

’FontWeight’,’bold’)

>> set(xl,’FontSize’ ,14’,’FontName’,’Arial’, ...

’FontWeight’,’bold’)

>> set(yl,’FontSize’ ,14’,’FontName’,’Arial’, ...

’FontWeight’,’bold’)

>> parent = get(h(1),’Parent’);

>> set(parent ,’FontSize’,14’,’FontName’,’Arial’, ...

’FontWeight’,’bold’)

Page 23: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Erweiterte Eigenschaften von Plots

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 23 / 67

Resultierender Plot:

0 20 40 60 80 100−12

−10

−8

−6

−4

−2

0

2

4

6

8

Day

Leve

l

Two Random Walks

Random Walk 1Random Walk 2

Page 24: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 24 / 67

Die meshgrid-Funktionmeshgrid ist eine nutzliche Funktion um Koordinatenpaare (2D) oderKoordinatentripel (3D) fur Gitterpunkte zu erzeugen. Im Folgenden wird nur der2D-Fall behandelt. 3D-Gitter werden aber ahnlich erzeugt.

Aufruf der Funktion:

[X, Y] = meshgrid(x, y);

x und y geben dabei an, fur welche Kombinationen aus x-Werten undy-Werten Gitterpunkte erzeugt werden sollen. X und Y sind die2D-Ergebnismatrizen, welche zusammen die Koordinaten der Gitterpunkteergeben.

Wird die Funktion wie folgt mit nur einem Parameter aufgerufen,

[X, Y] = meshgrid(a); % entspricht meshgrid(a, a)

dann werden fur x und y die gleichen Werte verwendet (in diesem Fall dieWerte aus a).

Page 25: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 25 / 67

Beispiele:

>> [X, Y] = meshgrid(1:3)

X =

1 2 3

1 2 3

1 2 3

Y =

1 1 1

2 2 2

3 3 3

>> [X, Y] = meshgrid(-2:2, -1:1)

X =

-2 -1 0 1 2

-2 -1 0 1 2

-2 -1 0 1 2

Y =

-1 -1 -1 -1 -1

0 0 0 0 0

1 1 1 1 1

Page 26: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 26 / 67

Beispiel:

-1 0 1 21

2

3

x-Werte

y-W

ert

e

[X, Y] = meshgrid(-1:2, 1:3)

X =

1

1

1

0

0

0

-1

-1

-1

2

2

2

Y =

1

2

3

1

2

3

1

2

3

1

2

3

Gitterpunkt (0,2)

Jeder Eintrag in X entspricht

dem x-Wert des jeweiligen Gitterpunktes

(daher sind die Zeilen identisch).

Jeder Eintrag in Y entspricht

dem y-Wert des jeweiligen Gitterpunktes

(daher sind die Spalten identisch).

Page 27: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 27 / 67

Vektorfelder visualisierenIn MATLAB kann man mit dem Befel quiver auch Vektorfelder visualisieren.Dazu benotigt man im einfachsten Fall

� Startpunkte der Vektoren� die Vektoren selbst

So erzeugt folgendes Beispiel ein Vektorfeld, dessen Vektoren tangential zueinem Kreis um den Ursprung sind. Weiters sind die Vektorl angen durch denentsprechenden Kreisradius gegeben (entspricht dem Geschwindigkeitsfeldeines Rades , welches sich im Uhrzeigersinn dreht):

>> [X, Y] = meshgrid( -2:0.5:2); % Gitterpunkte erzeugen

>> quiver(X, Y, -Y, X); % plotten

>> grid % Gitter einblenden

>> axis equal % Achsenskalierung fur x und y gleich

Die Funktion meshgrid liefert in diesem Fall die Koordinatenpaare vonaquidistanten Gitterpunkten in einem regelm aßigen Gitter als Matrizenzuruck, welche durch den angegebenen Bereich definiert sind.

Page 28: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 28 / 67

Das Resultat ist folgender Plot:

−3 −2 −1 0 1 2 3

−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

Weiterfuhrende Informationen zum quiver-Kommando liefert doc quiver.

Page 29: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 29 / 67

Scatter-Plots erzeugenDie Funktion scatter erlaubt es, die Werte aus zwei Vektoren x und ygegeneinander aufzutragen (Streudiagramm).

Um diese Funktion zu demonstrieren, erzeugen wir im folgenden Beispiel zweiVektoren 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 zurFormatierung akzeptiert (siehe plot). Dies gilt fur viele derVisualisierungs-Funktionen.

Page 30: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 30 / 67

Das Resultat ist folgender Plot:

−4 −3 −2 −1 0 1 2 3 4−4

−3

−2

−1

0

1

2

3

4

Weitere Optionen fur scatter (z.B. Große der Marker oder Farbe der Marker)sind in der Hilfe zu finden (doc scatter).

Page 31: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 31 / 67

Zu den bereits vorgestellten Funktionen zum Visualisieren von Daten, gibt esnoch weitere Funktionen in MATLAB:

Funktion Bedeutung

bar Balkendiagramm (Balken vertikal)barh Balkendiagramm (Balken horizontal)hist Histogramm (diskrete Verteilung)pie Kreisdiagrammstem Punkte mit Linien

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;

Page 32: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Weitere Funktionen zur Visualisierung

Plots in MATLAB

2D Plots

Einfaches Plotten

Eigenschaften von Plots

Erweiterte Eigenschaften

Weitere Funktionen zurVisualisierung

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 32 / 67

Das Beispiel erzeugt folgende Plots:

1 2 3 4 5 6 7 8 9 10

−1

−0.5

0

0.5

1

bar Plot

−1 −0.5 0 0.5 1

1

2

3

4

5

6

7

8

9

10

barh Plot

−2 0 20

10

20

30

40

50

60hist Plot

14%

< 1%2%

9%

4%

15%

13%

19%

18%

6%pie Plot

2 4 6 8 10

−1

−0.5

0

0.5

1

stem Plot

Page 33: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

3D-Visualisierung in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 33 / 67

Wie bereits erwahnt, stehen in MATLAB auch zahlreiche Funktionen zumVisualisieren von 3D-Daten und 3D-Funktionen zur Verfugung.

Einige dieser Funktionen sind analog zu bereits vorgestellten 2D-Funktionen :

2D-Funktion analoge 3D-Funktion

plot plot3

quiver quiver3

scatter scatter3

hist hist3

bar bar3

barh bar3h

pie pie3

stem stem3

Im Prinzip arbeiten die 3D-Funktionen ahnlich wie ihre 2D-Pendants – mit demUnterschied, dass man zusatzlich Daten angeben muss.

Page 34: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 34 / 67

Das plot3-KommandoIm Gegensatz zu plot benotigt plot3 zusatzlich eine z-Koordinate bei denDaten.

Folgendes Beispiel demonstriert die Verwendung von plot3:

>> t = linspace(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 standardmaßig keine Box um den Plot gezeichnet.Diese kann mittels box on bzw. box off aktiviert bzw. deaktiviert werden.

Page 35: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 35 / 67

Das Beispiel erzeugt folgenden Plot:

−60−40

−200

2040

−40

−20

0

20

40

600

10

20

30

40

50

60

Page 36: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 36 / 67

Dreidimensionales VektorfeldDie Funktion quiver3 erlaubt es, dreidimensionale Vektorfelder zu visualisieren.

Folgendes Beispiel demonstriert die Verwendung von quiver3:

>> [X,Y] = meshgrid( -2:0.1:2);

>> Z = peaks(X, Y); % MATLAB Test Funktion fur 3D-Plots

>> quiver3(X, Y, Z, 0, 0, Z);

>> axis tight;

−2−1.5

−1−0.5

00.5

11.5

2

−2

−1

0

1

2

−6

−4

−2

0

2

4

6

8

Page 37: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 37 / 67

Dreidimensionaler Scatter-plotDie Funktion scatter3 visualisiert dreidimensionale Scatter-Plots.

Folgendes Beispiel demonstriert die Verwendung von scatter3:

>> X = randn(1, 1000);

>> Y = randn(1, 1000);

>> Z = randn(1, 1000);

>> S = 15./ sqrt(X.^2+Y.^2+Z.^2);

>> scatter3(X, Y, Z, S, ’o’);

>> axis tight;

−3−2

−10

12

34

−3−2

−10

12

3−3

−2

−1

0

1

2

3

Page 38: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 38 / 67

Verschiedene FunktionenDie Verwendung der Funktionen bar3, bar3h, hist3, pie3 und stem3 wird imFolgenden 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;

Page 39: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 39 / 67

Das Beispiel erzeugt folgende Plots:

Page 40: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Spezielle Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 40 / 67

Neben den vorgestellten Funktionen, welche sowohl fur 2D-Plots als auch fur3D-Plots existieren, gibt es auch Funktionen, welche speziell fur die3D-Visualisierung von Daten verwendet werden.

Folgende Funktionen stehen zur Verfugung:

� mesh

� surf

� contour

Hinweis: wahrend mesh und surf 3D-Plots generieren, ist das Resultat beicontour ein 2D-Plot (obwohl 3D-Daten zur Visualisierung verwendet werden).

Page 41: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Spezielle Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 41 / 67

Das mesh-KommandoDas mesh-Kommando wird in MATLAB verwendet um dreidimensionale Gitter zuzeichnen. Die verwendete Farbe ist dabei proportional zur jeweiligen Gitterhohe.

Ein Beispiel:

>> [X,Y] = meshgrid( -2:0.1:2);

>> Z = peaks(X, Y);

>> mesh(X, Y, Z);

−2−1.5

−1−0.5

00.5

11.5

2

−2−1.5

−1−0.5

00.5

11.5

2−10

−5

0

5

10

Page 42: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Spezielle Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 42 / 67

Das surf-KommandoDas surf-Kommando ist ahnlich dem mesh-Kommando. Im Gegensatz zu meshgibt es aber zwei wesentlich Unterschiede:

� die Gitterfl achen werden gefullt dargestellt� man kann die verwendete Methode zur Farbdarstellung abandern

Wie auch bei mesh, ist die verwendete Farbe proportional zur jeweiligen Hohe imPlot.

Um die Art der Farbdarstellung zu verandern verwendet man das Kommandoshading:

� shading flat: jedes Gitterkastchen wird mit einer konstanten Farbegefullt.

� shading faceted: wie shading flat, jedoch wird zusatzlich noch einGitternetz eingeblendet.

� shading interp: wie shading flat, jedoch werden die Farben nuninterpoliert (ergibt einen Farbverlauf innerhalb der Gitterkastchen).

Page 43: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Spezielle Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 43 / 67

Das folgende Beispiel demonstriert die Verwendung von surf mit verschiedenenArten der Farbdarstellung:

>> [X,Y] = meshgrid( -2:0.1:2);

>> Z = peaks(X, Y);

>> subplot (2 ,2 ,1); surf(X, Y, Z);

>> shading flat; % Farbdarstellung ’flat ’

>> title(’shading flat’);

>> subplot (2 ,2 ,2); surf(X, Y, Z);

>> shading faceted; % Farbdarstellung ’faceted ’

>> title(’shading faceted ’);

>> subplot (2 ,2 ,3); surf(X, Y, Z);

>> shading interp; % Farbdarstellung ’interp ’

>> title(’shading interp’);

Page 44: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Spezielle Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 44 / 67

Das Beispiel ergibt folgende Plots:

Page 45: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Spezielle Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 45 / 67

Konturplots erzeugenMit Hilfe der Funktion contour kann man die Hohenlinie zu einer gegebenendreidimensionalen Funktion darstellen. Das Ergebnis ist aber ein 2D-Plot.

Wichtig: jede Hohenlinie entspricht einem konstanten z-Wert .

Werden contour nur die z-Werte ubergeben, ermittelt MATLAB automatisch dieGrenzen fur die x-Achse und die y-Achse.

Im folgenden Beispiel erzeugen wir ein regelmaßiges Punktegitter und plotten mitHilfe von contour die Hohenlinien zur dreidimensionalen Funktion z = |x ∗ y|:>> [X, Y] = meshgrid( -2:0.01:2); % Gitterpunkte erzeugen

>> contour(X, Y, abs(X.*Y), 50);

>> axis tight;

>> colorbar;

Der letzte Parameter (im Beispiel 50) gibt an, wieviele Hohenlinien gezeichnetwerden sollen (Feinheit der Darstellung).

colorbar blendet eine Farbleiste fur den Wertebereich ein (colorbar off

entfernt diese wieder).

Page 46: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Spezielle Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 46 / 67

Das Resultat ist folgender Plot:

−2 −1.5 −1 −0.5 0 0.5 1 1.5 2−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

0.5

1

1.5

2

2.5

3

3.5

Hinweis: die Farben der Hohenlinien entsprechen der entsprechenden Hohe.

Page 47: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Spezielle Funktionen zur 3D-Visualisierung

Plots in MATLAB

2D Plots

3D Plots

Funktionen zurVisualisierung

Spezielle 3D-Funktionen

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 47 / 67

Zusatzlich zur Funktion contour gibt es noch die Funktionen contourf

(gefullter Konturplot) und contour3 (Hohenlinien dreidimensional dargestellt).

>> subplot(1, 2, 1); contourf(peaks , 20);

>> title(’contourf Plot’);

>> subplot(1, 2, 2); contour3(peaks , 20);

>> title(’contour3 Plot’);

Das Resultat ist folgende Figure:

contourf Plot

10 20 30 40

10

20

30

40

10 20 30 4020

40

−10

0

10

contour3 Plot

Page 48: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Function-Handles in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Function Handles

Function Functions

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 48 / 67

In MATLAB kann man Verweise auf Funktionen erstellen (sogenannteFunction-Handles ).

Derartige Verweise werden mit Hilfe des @-Symbols erzeugt:

handle = @Funktionsname % Variante 1

handle = @(Argumente) Funktion % Variante 2

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 eineFunktion erstellt welche im Zuge von Funktion definiert wird. Diese Funktionkann auch ein oder mehrere Eingabeargumente haben.

Page 49: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Function-Handles in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Function Handles

Function Functions

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 49 / 67

So kann mit Hilfe von Variante 2 die Beispiel-Funktion f(x) = x2 durchfolgende Eingabe definiert werden:

>> f = @(x) x.^2;

Die Funktion kann dann wie folgt aufgerufen werden:

>> 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 fur sogenannte FunctionFunctions.

Page 50: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Function Functions in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Function Handles

Function Functions

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 50 / 67

In MATLAB sind Function Functions Funktionen, welche als Argument eineFunktion ben otigen .

Ein Beispiel fur eine solche Funktion in MATLAB ist fplot. Mit Hilfe dieserFunktion 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 allt 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), findetman in der MATLAB-Hilfe (siehe doc fplot).

Page 51: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Function Functions in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Function Handles

Function Functions

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 51 / 67

Beispiel zu fplot:

>> subplot(1, 2, 1);

>> fplot(@(x) exp(-x.^2), [-2, 2]);

>> subplot(1, 2, 2);

>> fplot(@sin , [-pi, pi ]);

Diese Anweisungen erzeugen folgende Figure:

−2 −1 0 1 20

0.2

0.4

0.6

0.8

1

−3 −2 −1 0 1 2 3−1

−0.5

0

0.5

1

Hinweis: fplot akzeptiert auch Funktionsterme, welche als String gegebensind. Also zum Beispiel:

>> fplot(’x.^2’, [-2, 2]);

Page 52: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Function Functions in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Function Handles

Function Functions

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 52 / 67

Eine MATLAB-Funktion, welche ahnlich wie fplot funktioniert, ist ezplot(Easy-Plot).

Es gibt zwei entscheidende Unterschiede zwischen diesen Funktionen:

� Funktionsvariablenwahrend fplot nur Funktionsterme in einer Variable unterstutzt, konnen beiezplot mehrere Variablen verwendet werden.

� Implizite Funktionenim Gegensatz zu fplot, unterstutzt ezplot auch implizite Funktionen.

Page 53: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Function Functions in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Function Handles

Function Functions

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 53 / 67

Weitere Function Functions zum einfachen Zeichnen von Funktionen sindezmesh und ezsurf. Diese Funktionen arbeiten ahnlich wie ezplot,generieren aber 3D-Gitterplots.

>> f = @(x, y) x.*exp(-x.^2-y.^2);

>> subplot(1, 2, 1); ezmesh(f);

>> subplot(1, 2, 2); ezsurf(f);

Diese Anweisungen erzeugen folgende Figure:

−20

2

−20

2

−0.5

0

0.5

x

x exp(−x2−y2)

y−2

02

−20

2

−0.5

0

0.5

x

x exp(−x2−y2)

y

Wir sehen: wir erhalten automatisch Achsenbeschriftungen und einen Titel

Page 54: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Parametrisierte Kurven in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Kurven

Flachen

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 54 / 67

Mit Hilfe der Funktionen ezplot und ezplot3 kann man in MATLAB auchparametrisierte Funktionen plotten.

Zur Erinnerung: bei einer parametrisierten Kurve konnen alle Punkte der Kurvedurch eine Funktion in einem oder mehreren Parametern durchlaufen werden.

Zum Beispiel definieren die Funktionen

x = cos(3t)cos(t) y = cos(3t)sin(t)

eine dreiblattrige Kurve (Trochoide), auf welcher die Punkte nur vom Parameter tabhangig sind.

In MATLAB:

>> x = @(t) cos(3*t).*cos(t);

>> y = @(t) cos(3*t).*sin(t);

>> ezplot(x, y, [0, 2*pi]); % wir beno tigen nun 2 Funktionen

Page 55: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Parametrisierte Kurven in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Kurven

Flachen

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 55 / 67

Wir erhalten folgenden Plot der dreiblattrigen Kurve:

−1 −0.5 0 0.5 1

−0.8

−0.6

−0.4

−0.2

0

0.2

0.4

0.6

0.8

x

y

x = cos(3 t) cos(t), y = cos(3 t) sin(t)

Page 56: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Parametrisierte Kurven in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Kurven

Flachen

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 56 / 67

Die Funktion ezplot3 funktioniert gleich, benotigt aber drei Funktionen , dadas Ergebnis ein 3D-Plot ist.

Interessant: bei ezplot3 kann man zusatzlich zu den Funktionen und Grenzennoch den Parameter ’animate’ angeben. Dann wird eine Animation angezeigt,bei welcher ein Punkt die gezeichnete Kurve durchl auft .

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]); % beno tigen 3 Funktionen

Page 57: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Parametrisierte Kurven in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Kurven

Flachen

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 57 / 67

Der entsprechende Plot:

−0.6−0.4

−0.20

0.20.4

0.60.8

1

−0.5

0

0.5

10

5

10

15

20

x

x = exp(−0.2 t) cos(t), y = exp(−0.2 t) sin(t), z = t

y

z

Page 58: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Parametrisierte Fl achen in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Kurven

Flachen

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 58 / 67

Neben parametrisierten Kurven, kann man in MATLAB mit Hilfe der Funktionenezmesh und ezsurf auch parametrisierte Flachen im R

3 zeichnen.

Beispiel:Ein Torus wird in Parameterform folgendermaßen angeschrieben:

x = (a+ b cos θ) cosφ

y = (a+ b cos θ) sinφ

z = b sin θ

In MATLAB kann man einen solchen Torus folgendermaßen zeichnen:

>> 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;

Page 59: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Parametrisierte Fl achen in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Kurven

Flachen

Implizite Plots

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 59 / 67

Die entsprechende Figure:

Page 60: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Implizite Kurven in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Kurven

Flachen

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 60 / 67

Wie bereits schon erwahnt, lassen sich mit der Funktion ezplot auch impliziteKurven darstellen.

Der Einheitskreis (Radius 1) ist zum Beispiel folgendermaßen definiert:

f(x, y) = x2 + y2 − 1

Diese Funktion kann nicht in der Form y = f(x) angeschrieben werden, da esfur jedes x die zwei Moglichkeiten y = ±

√1− x2 gibt.

In MATLAB plottet man diese implizite Funktion mittels:

>> ezplot(’x.^2+y.^2-1’, [-1, 1]);

>> axis equal;

Weitere Beispiele:

>> 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]);

Page 61: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Implizite Kurven in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Kurven

Flachen

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 61 / 67

Der Einheitskreis sieht dann (wie erwartet) so aus:

−1 −0.5 0 0.5 1−1

−0.5

0

0.5

1

x

y

x2+y2−1 = 0

Weitere Beispiele:

−10 0 10−15

−10

−5

0

5

10

15

x

y

−x2/4+y2/25−1 = 0

−10 0 10−15

−10

−5

0

5

10

15

x

y

x4+y4−144 = 0

Page 62: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Implizite Fl achen in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Kurven

Flachen

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 62 / 67

Neben impliziten Kurven konnen in MATLAB auch implizite Flachen gezeichnetwerden.

Da eine nahere Behandlung der entsprechenden Funktionen aber zu weit fuhrenwurde, soll dies im Folgenden nur anhand eines Beispiels demonstriert werden(Beispiel aus der MATLAB-Hilfe).

>> [x, y, z, v] = flow;

>> p = patch(isosurface(x, y, z, v, -3));

>> isonormals(x, y, z, v, p)

>> set(p, ’FaceColor’, ’red’, ’EdgeColor’, ’none’);

>> daspect ([1 1 1])

>> view (3); axis tight

>> camlight

>> lighting gouraud

Nahere Informationen zu impliziten Flachen findet man in der MATLAB-Hilfemittels doc isosurface.

Page 63: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Implizite Fl achen in MATLAB

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Kurven

Flachen

Export und Druck vonGrafiken

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 63 / 67

Das soeben vorgestellte Beispiel erzeugt folgenden Plot:

Page 64: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Exportieren und Druck von Grafiken

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

GUI Methode

Kommandos

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 64 / 67

Hat man in MATLAB eine oder mehrere Grafiken erzeugt, will man diese haufigzur Weiterverwendung speichern und/oder drucken .

Dies kann prinzipiell uber zwei Wege erreicht werden:

� uber die Oberflache von MATLAB� durch Kommandos (Kommandozeile oder m-File)

Page 65: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Druck und Export uber die Oberfl ache

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

GUI Methode

Kommandos

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 65 / 67

Um Grafiken zu exportieren , unterstutzt MATLAB eine Vielzahl vonDateiformaten.

Die vermutlich am haufigsten verwendeten Formate sind jpeg, fig, png, pdf undeps .

Ist eine Figure vorhanden, kann man das Exportieren uber den Menupunkt ’File→ Save As ...’ vornehmen:

Page 66: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Druck und Export uber die Oberfl ache

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

GUI Methode

Kommandos

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 66 / 67

Um eine Grafik zu drucken , geht man ahnlich vor.

Den Druck einer Figure kann man in einer Figure uber den Menupunkt ’File →Print’ vornehmen:

Hinweis: uber den Menupunkt ’File → Print Preview ...’ erreicht man einenDialog, welcher detailierte Einstellungen zum Druck erlaubt und eineDruckvorschau anzeigt. Ist dann alles wie gewunscht eingestellt, kann man uberdiesen Dialog auch den Druck auslosen.

Page 67: Anwendungssoftware III (MATLAB) - Computer Sciencesmliedl/data/matlab_plotting_V.pdf · M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 1 / 67 Anwendungssoftware III (MATLAB)

Druck und Export mittels Kommandos

Plots in MATLAB

2D Plots

3D Plots

Funktionsdarstellungen

Parametrisierte Plots

Implizite Plots

Export und Druck vonGrafiken

GUI Methode

Kommandos

M. Liedlgruber Anwendungssoftware III (MATLAB) – SS 2014 67 / 67

Um Grafiken aus einem m-File oder von der Konsole aus zu drucken oder zuexportieren, gibt es das Kommando print.

Den Export der aktuell aktiven Figure erreicht man zum Beispiel mittels

>> print -depsc2 MyFile.eps

Dieses Kommando erzeugt die Grafikdatei MyFile.eps im aktuellenMATLAB-Verzeichnis.

Oder:

>> print -dpng MyFile.png

Dieses Kommando erstellt die Datei MyFile.png im aktuellenMATLAB-Verzeichnis.

Mit print kann man auch direkt auf einen Drucker drucken. Da dies jedoch nursehr selten von Nutzen sein wird und viele Konfigurationsmoglichkeitenangeboten werden, verweise ich hier auf die MATLAB-Hilfe (doc print).


Recommended