diff --git a/plotting/lecture/images/VectorBitmap.pdf b/plotting/lecture/images/VectorBitmap.pdf new file mode 100644 index 0000000..c9b5bc0 Binary files /dev/null and b/plotting/lecture/images/VectorBitmap.pdf differ diff --git a/plotting/lecture/plotting.tex b/plotting/lecture/plotting.tex index f57e1ff..9c6954d 100644 --- a/plotting/lecture/plotting.tex +++ b/plotting/lecture/plotting.tex @@ -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}