plotting extended

This commit is contained in:
Jan Grewe 2015-11-12 17:26:11 +01:00
parent 497b17227a
commit deffe54af8
2 changed files with 271 additions and 91 deletions

Binary file not shown.

View File

@ -1,8 +1,8 @@
\chapter{\tr{Data plotting}{Graphische Darstellung von Daten}}
\section{Dos and Don'ts bei der graphische Darstellung von Daten}
\section{Dos and Don'ts bei der graphischen Darstellung von Daten}
Die Fähigkeit zur ad\"aquaten Darstellung wissenschaftlicher Daten
Die F\"ahigkeit zur ad\"aquaten Darstellung wissenschaftlicher Daten
darf man durchaus zu den notwendigen Kernkompetenzen z\"ahlen. Wir
brauchen sie um unsere Daten und Ergebnisse \"uberzeugend darzustellen
und das Verst\"andnis zu vereinfachen
@ -14,19 +14,18 @@ und das Verst\"andnis zu vereinfachen
\end{figure}
\subsection{Was soll ein Plot leisten?}
Graphen sollen dem geneigten Leser wissenschaftlicher Arbeiten
erm\"oglichen die Daten zu erfassen und die beschriebenen Effekte zu
begutachen, zu hinterfragen und zu validieren. Eine der obersten
Regeln ist die vollst\"andige Annotation von Plots (Abbildung
\ref{xkcdplotting}). Eine weiteres Prinzip, an das man sich halten
sollte ist die \textbf{ink minimization}. Dieses Prinzip fordert, dass
das Verh\"altnis aus Tinte, die f\"ur die Darstellung der Daten
gebraucht wird und der Menge Tinte, die f\"ur sonstige Elemente der
Graphik aufgewendet m\"oglichst gro{\ss} ist. Mit anderen Worten
\"uberfl\"ussiger Ausschm\"uckungen sollten sich in Datenplots nur
selten finden lassen. Eine Ausnahme kann vielleicht gemacht werden,
wenn der Plot z.B in einer Pr\"asentation oder zu didaktischen
Zwecken genutzt wird.
Graphen sollen dem geneigten Leser erm\"oglichen die Daten zu erfassen
und die beschriebenen Effekte zu begutachen, zu hinterfragen und zu
validieren. Eine der obersten Regeln ist die vollst\"andige Annotation
von Plots (Abbildung \ref{xkcdplotting}). Eine weiteres Prinzip, an
das man sich halten sollte, ist die \emph{ink minimization}. Dieses
Prinzip fordert, dass das Verh\"altnis aus Tinte, die f\"ur die
Darstellung der Daten gebraucht wird und der Menge Tinte, die f\"ur
sonstige Elemente der Graphik aufgewendetwird m\"oglichst gro{\ss}
ist. Mit anderen Worten: \"uberfl\"ussige Ausschm\"uckungen sollten
sich in Datenplots nur selten finden lassen. Eine Ausnahme kann
gemacht werden, wenn der Plot z.B in einer Pr\"asentation oder zu
didaktischen Zwecken genutzt wird.
\subsection{Dinge, die vermieden werden sollten.}
@ -45,13 +44,11 @@ Korrektheit besteht.
wissenschaftlicher Daten nicht geeignet.}\label{comicexamplefig}
\end{figure}
\subsection{Beispiele suggestiver oder fehlleitender Darstellungen}
Im folgenden werden einige Beispiele fehlleitender oder suggestiver
Im Folgenden werden einige Beispiele fehlleitender oder suggestiver
Darstellungen gezeigt. Einiger dieser Effekte sind deutlich
\"uberzeichnet, die beschriebenen ``Tricks'' werden allerdings, etwas
dezenter nat\"urlich, mitunter mit voller Absicht eingesetzt um die
Wahrnehmung in die gewollte Richtung zu beeinflussen. Auf Wikipedia
gibt es weitere Beispiele
\"uberzeichnet, sie werden aber, etwas dezenter nat\"urlich, mitunter
mit voller Absicht eingesetzt um die Wahrnehmung in die gewollte
Richtung zu beeinflussen. Auf Wikipedia gibt es weitere Beispiele
(\url{https://en.wikipedia.org/wiki/Misleading_graph}).
Durch perspektivische Effekte k\"onnen Gr\"o{\ss}enverh\"altnisse
@ -143,21 +140,25 @@ auf lange Sicht sehr aufwendig. Das Bestreben sollte sein, aus
\matlab{} heraus publikationsreife Abbildungen zu erzeugen.
TODOS\\
Elemente eines Plots:
Plots in \matlab{} bestehen aus mehreren Elementen:
\begin{enumerate}
\item Figure
\item Axes
\item Lines
\item Annotationen
\item Legende
\item \enterm{Figure}: Dieses Element stellt die gesamte
Zeichenf\"ache, das Blatt Papier, dar.
\item \enterm{Axes}: Das Koordinatensystem in welches gezeichnet wird.
\item \enterm{Lines}: Die gezeichneten Datenplots wie Linien,
Fl\"achen, etc.
\item \enterm{Annotations}: Annotationen wie Textboxen oder auch
Pfeil, die zum Hervorheben von Punkten, oder Abschnitten gedacht
sind.
\item \enterm{Legends}: Legenden der Daten plots.
\end{enumerate}
\subsection{Einfaches Plotten}
TODO
\subsection{Ver\"andern von Eigenschaften von Linen}
Jedes dieser Elemente bietet eine Vielzahl von
Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese
\"uber die GUI (Abbildung \ref{ploteditorfig}) bearbeitet werden. Je
nachdem welches der graphischen Elemente (Figure, Axes, etc., s.\,o.)
ausgew\"ahlt wurde ver\"andern sich die Einstellungs\"oglichkeiten in
des Editors.
\begin{figure}
\begin{minipage}[t]{0.6\columnwidth}
@ -166,69 +167,198 @@ TODO
\begin{minipage}[t]{0.3\columnwidth}
\includegraphics[width=0.9\textwidth]{property_editor}
\end{minipage}
\caption{\textbf{Graphischer Plot Editor.} \"Uber das Menu
``Tools->Edit Plot'' erreicht man den Plot Editor. Je nachdem
\caption{\textbf{Graphisches Interface: ``Plot Editor''.} \"Uber das Menu
``Tools $\rightarrow$ Edit Plot'' erreicht man den Plot Editor. Je nachdem
welches Element des Plots ausgew\"ahlt wurde ver\"andern sich
Einstellungsm\"oglichkeiten. Weitere Eigenschaften und
die Einstellungsm\"oglichkeiten. Weitere Eigenschaften und
Einstellungen k\"onnen \"uber den ``Property Editor'', rechts,
eingesehen und ver\"andert werden. Der ``Property Editor'' ist
\"uber die Schaltfl\"ache ``More Properties''
erreichbar.}\label{ploteditorfig}
\end{figure}
Alle Einstellungen, die man \"uber das graphische Interface machen
kann sind auch \"uber Befehle auf der Kommandozeile m\"oglich. Das
hei{\ss}t, dass die Einstellungen problemlos in ein Skript oder eine
Funktion eingebaut werden k\"onnen. Dieser Ansatz hat den Vorteil,
dass man sich die M\"uhe nur einmal machen muss. Zu den h\"aufigsten
Einstellungen geh\"oren:
\begin{enumerate}
\item Einstellungen der Linienplots:
\begin{itemize}
\item St\"arke und Farbe.
\item Linienstil, Marker.
\end{itemize}
\item Achsbeschriftung:
\begin{itemize}
\item \code{xlabel}, \code{ylabel}.
\item Schriftart und Gr\"o{\ss}e.
\end{itemize}
\item Achsenskalierung und Ticks:
\begin{itemize}
\item Skalierung der Achsen (Minumum und Maxmimum, logarithmisch oder linear).
\item Manuelles Setzen der Ticks, ihrer Richtung und Beschriftung.
\item Grid or no Grid?
\end{itemize}
\item Setzen von globalen Parametern:
\begin{itemize}
\item Einstellung der Papiergr\"o{\ss}e und plzieren der
Zeichenfl\"ache.
\item Soll die Zeichenfl\"ache auf allen vier Seiten von einer Box eingeschlossen sein oder nicht?
\item Speichern der Abbildung als pdf.
\end{itemize}
\end{enumerate}
Alle Einstellungen, die \"uber das graphische Interface vorgenommen
werden k\"onnen sind auch \"uber Befehle auf der Kommandozeile
m\"oglich. Das hei{\ss}t, dass die Einstellungen problemlos in ein
Skript oder eine Funktion eingebaut werden k\"onnen. Dieser Ansatz hat
den Vorteil, dass man sich die M\"uhe nur einmal machen muss. Die
Abbildungen k\"onnen exakt reprosuziert werden.
\subsection{Globale Einstellungen}
\TODO
Das folgende Listing \ref{niceplotlisting} zeigt das Skript, das die
Abbildung \ref{spikedetectionfig} erstellt und speichert. Abh\"angig
davon, ob man Eigenschaften der Abbildung oder der Achsen setzen will
benutzt man die \code{set} Funktion und \"ubergibt ihr ein sogenanntes
Handle der Achse oder der Abbildung und sowohl den Namen als auch den
gew\"unschten Wert der Eigenschaft: \code{set(gcf, 'PaperUnits',
'centimeters')} setzt die Eigenschaft ``PaperUnits'' der Abbildung
auf ``centimeters''. (Standard Einheit ist, nat\"urlich, ``inches''.)
\code{gcf} steht f\"ur ``get current figure'' und stellt ein Handle
der aktuellen Abbildung zur Verf\"ugung. Um Eigenschaften der Achse zu
setzten benutzt man: \code{set(gca, 'linewidth', 1.5)} wobei
\code{gca} f\"ur ``get current axis'' steht. Wenn man den Namen einer
Eigenschaft nicht kennt, kann man entweder in der Hilfe nachschlagen
oder sie im ``Property Editor'' finden.
\subsection{Einfaches Plotten}
Einen einfachen Linienplot zu erstellen ist denkbar
einfach. Angenommen, es existiert einer Variable \code{y} im
\enterm{Workspace}, die die darzustellenden Daten enth\"alt. Es
gen\"ugt folgender Funktionsaufruf: \code{plot(y)}. Wenn bislang noch
keine Abbildung erstellt wurde \"offnet \matlab{} ein neues Fenster
und stellt die Daten als Linienplot dar. Dabei werden die Datenpunkte
durch eine Linie verbunden. Die Messpunkte selbst sind nicht
sichtbar. Wenn schon eine Abbildung existiert, wird der Inhalt
ersetzt. Das Festhalten von bestehenden Plots kann an- oder abgestellt
werden indem \code{hold on} bzw. \code{hold off} vor dem \code{plot()}
Befehl aufgerufen wird.
Im obigen Plot Aufruf wird nur ein Argument, das \code{y}, an die
Funktion \code{plot} \"ubergeben. \code{plot} erh\"alt nur die
y-Werte. \matlab{} substituiert in diesem Fall die fehlenden x-Werte,
indem eine Schrittweite von 1 angenommen wird. Die x-Achse reicht also
von 1 bis zur L\"ange des Vektors \code{y}. Diese Skalierung der
x-Achse ist nur in den wenigsten F\"allen erw\"unscht. Besser ist es,
die zugeh\"origen x-Werte explixit zu \"ubergeben und so z.B. die
y-Werte als Funktion der Zeit darzustellen (\code{plot(x, y)}).
Standard\"a{\ss}ig wird der erste Lininenplot mit in blau, mit
durchgezogener Linie, ohne Marker und der Strichst\"arke 1
dargestellt. Der zweite Linienplot erh\"alt automatisch die Farbe
'rot'. Alle anderen Eigenschaften sind identisch. Die Reihenfolge der
Farben ist vordefiniert kann aber durch das Setzen einer
\enter{colormap} beeinflusst werden. Die Tabellen
\ref{plotlinestyles} zeigen vordefinierte Werte f\"r den Linienstil,
die Farbe und die verschiedenen Marker.
\begin{table}[tp]
\titlecaption{Vordefinierte Linienstile (links), Farben (Mitte) und Markersymbole (rechts).}{}\label{plotlinestyles}
\begin{minipage}[t]{0.3\textwidth}
\vspace{0pt}
\begin{tabular}{c|l}
\textbf{Linienstil} & \textbf{K\"urzel} \\\hline
durchgezogen & '-' \\
gestrichelt & '--' \\
gepunktet & ':' \\
Strichpunkte & '.-' \\\hline
\end{tabular}
\end{minipage}
\vspace{0pt}
\begin{minipage}[t]{.3\textwidth}
\vspace{0pt}
\hspace{0.05\textwidth}
\begin{tabular}{lc}
\textbf{Farbe} & \textbf{K\"urzel} \\ \hline
Rot & 'r'\\
Gr\"un & 'g' \\
Blau & 'b' \\
Cyan & 'c' \\
Magenta & 'm' \\
Gelb & 'y' \\
Schwarz & 'k' \\ \hline
\end{tabular}
\end{minipage}
\vspace{0pt}
\begin{minipage}[t]{0.3\textwidth}
\vspace{0pt}
\begin{tabular}{lc}
\textbf{Markersymbol} & \textbf{K\"urzel} \\ \hline
Kreis & 'o'\\
Stern & '*' \\
Plus & '+' \\
Kreuz & 'x' \\
Diamant & 'd' \\
Pentagramm & 'p' \\
Hexagramm & 'h' \\
Quadrat & 's' \\
Dreieck & '\^{}' \\
Umgekehrtes Dreieck & 'v' \\
Dreieck links & '$<$'\\
Dreieck rechts & '$>$'\\\hline
\end{tabular}
\end{minipage}
\end{table}
\subsection{Ver\"andern von Linieneigenschaften}
Will man die Eigenschaften des Linienplots selbst bestimmen, so
empfiehlt es sich das dem \code{plot} Befehlt mitzuteilen. Folgender
Aufruft erzeugt einen roten Linienplot mit gepunkteter Linie der
St\"arke 1.5 und Strenmarkern and den Positionen der
Datenpunkte. Zus\"atzlich wird noch die Eigenschaft
\codeterm{displayname} gesetzt, um dem Linienplot einen Namen zu
geben, der in einer Legende verwendet werden kann.
\begin{lstlisting}
x = 0:0.1:2*pi;
y = sin(x);
plot( x, y, 'color', 'r', 'linestyle', ':', 'marker', '*', 'linewidth', 1.5, 'displayname', 'plot 1')
\end{lstlisting}
\subsection{Ver\"andern von Achseneigenschaften}
Das erste, was ein Plot braucht ist eine Achsenbeschriftung. Mithilfe
der Funktionen \code{xlabel('Time [ms]')} und \code{ylabel('Voltage
[V]')} k\"onnen diese gesetzt werden. Standardm\"a{\ss}ig setzt
Matlab die Grenzen der x- und y-Achse so, dass die Daten
hineinpassen. Dabei wird meist auf den n\"achsten ganzzahligen Wert
aufgerundet. Will man diese manuell bestimmen, dann benutzt man die
Funktionen \code{xlim} und \code{ylim}. Diese erwarten als Argument
einen 2-elementigen Vektor mit dem Minimum und dem Maximum der
jeweiligen Achse. Tabelle \ref{plotaxisprops} listet weitere h\"aufig
genutzte Einstellungen der Achsen. Um sie zu ver\"andern benutzt man
die Funktion \code{set}. Listing \ref{niceplotlisting} Zeile 15 zeigt
wie sie verwendet wird. Die Funktion erwartet als erstes Argument ein
sogenanntes Handle der Achse, dieses wird gefolgt von einer beliebig
langen Reihe von Eigenschaft-Wert Paaren. Soll z.B. das Gitternetz der
x-Achse gezeigt werden, wird die Eigenschaft \codeterm{XGrid} auf den
Wert \codeterm{'on'} gesetzt: \code{set(gca, 'XGrid', 'on');}. Das
erste Argument ist ein Aufruf der Funktion \code{gca},
``get-current-axis'' und ist das Achsenhandle.
\begin{table}[tp]
\titlecaption{Ausgew\"ahlte Eigenschaften der Achse. Alle Eigenschaften der Achse findet man in der Hilfe oder im \codeterm{Property Editor}, siehe Abbildung \ref{ploteditorfig}. Wenn es eine definierte Auswahl von Einstellungen gibt, z.B. bei der Eigenschaft \codeterm{Box}, dann ist die Standardeinstellungen, als erstes gelistet.}{}\label{plotaxisprops}
\begin{tabular}{l|p{5cm}|p{5cm}}
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
\codeterm{Box} & Definiert, ob der Rahmen der Achse vollst\"andig gezeichnet wird. & $\{'on'|'off'\}$ \\
\codeterm{Color} & Hintergrundfarbe des Koordinatensystems. & Beliebige RGB, CMYK ... Werte. \\
\codeterm{Fontname} & Der Name der Schriftart. & Im System installierte Schriften. \\
\codeterm{FontSize} & Gr\"o{\ss}e der Schrift. & Skalarer Wert.\\
\codeterm{FontUnit} & Einheit, in der die Schriftgr\"{\ss}e bestimmt wird. & $\{'points' | 'centimeters' | 'inches', ...\}$\\
\codeterm{FontWeight} & Fett- oder Normalsatz der Schrift. & $\{normal' | 'bold'\}$\\
& 'd' \\
\codeterm{TickDir} & Richtung der Teilstriche auf der Achse. & $\{'in' | 'out'\}$\\
\codeterm{TickLength} & L\"ange der Haupt- und Nebenteilstriche & \\
\codeterm{X-, Y-, ZDir} & Richtung der Achsskalierung. & $\{'normal' | 'reversed'\}$\\
\codeterm{X-, Y-, ZGrid} & Sollen Gitternetzlinien gezeigt werden? & $\{'off'|'on'\}$ \\
\codeterm{X-, Y-, ZScale} & Lineare oder logarithmische Skalierung der Achse. & $\{'linear' | 'log'\}$\\
\codeterm{X-, Y-, ZTick} & Position der Teilstriche auf der Achse. & Vektor mit Positionen.\\
\codeterm{X-, Y-, ZTickLabel} & Beschriftung der Teilstriche. & Vektor mit entsprechenden Zahlen oder Cell-Array mit Strings.\\ \hline
\end{tabular}
\end{table}
\subsection{Ver\"andern von Figure-Einstellungen}
Wie die Achse, hat auch das \codeterm{Figure} Element eine Reihe von
Eigenschaften, die nach Bedarf gesetzt werden k\"onnen (Tabelle
\ref{plotfigureprops} listet die meistverwendeten). Um sie zu setzen
verwendet man wieder die \code{set} Funktion. Das erste Argument ist
jetzt aber eine Handle f\"ur die Abbildung, nicht das
Koordinatensystem. Statt der Funktion \code{gca} wird \code{gcf},
``get-current-figure'' benutzt.
\begin{table}[tp]
\titlecaption{Ausgew\"ahlte Eigenschaften der \codeterm{Figure}. Alle Eigenschaften der Achse findet man in der Hilfe con \matlab{} oder im \codeterm{Property Editor} wenn die Abbildung ausgew\"ahlt wurde (Abbildung \ref{ploteditorfig}).}{}\label{plotfigureprops}
\begin{tabular}{l|p{5cm}|p{5cm}}
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
\codeterm{Color} & Hintergrundfarbe der Zeichenfl\"ache. & Beliebige RGB, CMYK ... Werte. \\
\codeterm{PaperPosition} & Posistion der Abbildung auf dem Papier & 4-elementiger Vektor mit den Positionen der linken-unteren, und rechten-oberen Ecke. \\
\codeterm{PaperSize} & Gr\"o{\ss}e der des Papiers. & 2-elementiger Vektor mit der Papiergr\"o{\ss}e.\\
\codeterm{PaperUnits} & Einheit, in der die Papiergr\"{\ss}e bestimmt wird. & $\{'inches' | 'centimeters' | 'normalized' | 'points'\}$\\
\codeterm{Visible} & Hilfreich, wenn ein Plot aus Performanzgr\"unden nicht auf dem Bildschirm gezeigt, sondern direkt gespeichert werden soll. & $\{'on' | 'off'\}$\\ \hline
\end{tabular}
\end{table}
Das folgende Listing \ref{niceplotlisting} zeigt wie ein Skript
aussehen k\"onnte, das die notwendigen Anpassungen vornimmt. Bei jedem
Aufruf des Skripts wird exakt der gleiche Plot (Abbildung
\ref{spikedetectionfig}) erstellt und gespeichert. Erw\"ahnenswert
sind hier vor allem die Zeilen 2 und 3 in denen die Gr\"o{\ss}e der
Abbildung in Zentimetern definiert wird. In Zeile 16 wird die
Abbildung dann in genau der angegebenen Gr\"o{\ss}e im ``pdf'' Format
gespeichert. Dazu wird die Funktion \code{saveas} verwendet, die als
erstes Argument wieder ein Handle auf die Figure erwartet. Das zweite
Argument ist der Dateiname, und zuletzt muss das gew\"unschte Format
(Box \ref{graphicsformatbox}) angegeben werden.
\clearpage
\begin{lstlisting}[caption={Skript zur Erstellung des Plots in Abbildung \ref{spikedetectionfig}.}, label=niceplotlisting]
fig = figure();
figure()
set(gcf, 'PaperUnits', 'centimeters', 'PaperSize', [11.7 9.0]);
set(gcf, 'PaperPosition',[0.0 0.0 11.7 9.0], 'Color', 'white')
hold on
@ -243,7 +373,7 @@ xlabel('time [s]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
ylabel('potential [mV]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
title('pyramidal cell', 'fontname', 'MyriadPro-Regular', 'fontsize', 12)
set(gca, 'TickDir','out', 'linewidth', 1.5, 'fontname', 'MyriadPro-Regular')
saveas(fig, 'spike_detection.pdf', 'pdf')
saveas(gcf, 'spike_detection.pdf', 'pdf')
\end{lstlisting}
\begin{figure}
@ -253,11 +383,61 @@ saveas(fig, 'spike_detection.pdf', 'pdf')
gespeichert.}\label{spikedetectionfig}
\end{figure}
Neben den Standard Linienplots gibt es eine ganze Reihe weiterer
M\"oglichkeiten Daten zu Visualisieren. Mathworks zeigt unter
\url{http://www.mathworks.de/discovery/gallery.html} viele Beispiele
mit zugeh\"origem Code.
M\"oglichkeiten Daten zu Visualisieren. Mathworks zeigt auf seiner
Homepage viele Beispiele mit zugeh\"origem Code
\url{http://www.mathworks.de/discovery/gallery.html}.
\begin{ibox}[t]{\label{graphicsformatbox}Dateiformate f\"ur Abbildungen.}
Im Wesentlichen gibt es zwei Arten von Dateiformaten f\"ur
Graphiken.
\begin{enumerate}
\item \determ{Rastergraphik} (\enterm{Bitmap})
\item \determ{Vektorgraphik} (\enterm{vector graphics})
\end{enumerate}
Bei Rastergraphiken wird f\"ur jeden Bildpunkt (jedes Pixel) der
aktuelle Farbwert angegeben. Sie sind vor allem f\"ur Fotos
geeignet. Im Gegensatz dazu werden bei Vektorgraphiken die
Abbildungen durch sogenannte Primitive (Linien, Kreise, Polygone
...) beschrieben. Der Vorteil der Vektorgraphiken
ist die Skalierbakeit ohne Qualit\"atsverlust.\\
\begin{minipage}[t]{0.42\textwidth}
\includegraphics[width=\textwidth]{VectorBitmap.pdf}
\small{by Darth Stabro at en.wikipedia.org}
\vspace{0.1cm}
\end{minipage}
\begin{flushright}
\begin{minipage}[t]{0.5\textwidth}
\vspace{-9.5cm}
Von \matlab{} unterst\"utzte Formate\footnote{Auswahl, mehr Information in der Hilfe zu \code{saveas}}:\\
\begin{tabular}{l|c|l}
\textbf{Format} & \textbf{Typ} & \code{saveas} Argument} \\ \hline
pdf & Vektor & \codeterm{'pdf'} \\
eps & Vektor & \codeterm{'eps','epsc'} \\
SVG & Vektor & \codeterm{'svg'} \\
PS & Vektor & \codeterm{'ps', 'psc'} \\
jpg & Bitmap & \codeterm{'jpeg'} \\
tif & Bitmap & \codeterm{'tiff', 'tiffn'} \\
png & Bitmap & \codeterm{'png'} \\
bmp & Bitmap & \codeterm{'bmp'} \\
\end{tabular}
\end{minipage}
\end{flushright}
Wenn aus \matlab{} heraus Graphiken gespeichert werden sollen, dann
ist es meist sinnvoll sie als Vektorgraphik zu speichern. Im
Zweifelsfall k\"onnen diese sp\"ater in Rastergraphiken umgewandelt
werden. Der Weg von einer Rastergraphik zu einer Vektorgraphik ist
nich verlustfrei m\"oglich. Das Speichern von Abbildungen mit sehr
vielen graphischen Elementen (z.B. ein Rasterplot mit tausenden von
Aktionspotentialen) ist als Rastergraphik allerdings deutlich
schneller und speichereffizienter.
\end{ibox}
\subsection{Fazit}