plotting extended
This commit is contained in:
parent
497b17227a
commit
deffe54af8
BIN
plotting/lecture/images/VectorBitmap.pdf
Normal file
BIN
plotting/lecture/images/VectorBitmap.pdf
Normal file
Binary file not shown.
@ -1,8 +1,8 @@
|
|||||||
\chapter{\tr{Data plotting}{Graphische Darstellung von Daten}}
|
\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
|
darf man durchaus zu den notwendigen Kernkompetenzen z\"ahlen. Wir
|
||||||
brauchen sie um unsere Daten und Ergebnisse \"uberzeugend darzustellen
|
brauchen sie um unsere Daten und Ergebnisse \"uberzeugend darzustellen
|
||||||
und das Verst\"andnis zu vereinfachen
|
und das Verst\"andnis zu vereinfachen
|
||||||
@ -14,19 +14,18 @@ und das Verst\"andnis zu vereinfachen
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Was soll ein Plot leisten?}
|
\subsection{Was soll ein Plot leisten?}
|
||||||
Graphen sollen dem geneigten Leser wissenschaftlicher Arbeiten
|
Graphen sollen dem geneigten Leser erm\"oglichen die Daten zu erfassen
|
||||||
erm\"oglichen die Daten zu erfassen und die beschriebenen Effekte zu
|
und die beschriebenen Effekte zu begutachen, zu hinterfragen und zu
|
||||||
begutachen, zu hinterfragen und zu validieren. Eine der obersten
|
validieren. Eine der obersten Regeln ist die vollst\"andige Annotation
|
||||||
Regeln ist die vollst\"andige Annotation von Plots (Abbildung
|
von Plots (Abbildung \ref{xkcdplotting}). Eine weiteres Prinzip, an
|
||||||
\ref{xkcdplotting}). Eine weiteres Prinzip, an das man sich halten
|
das man sich halten sollte, ist die \emph{ink minimization}. Dieses
|
||||||
sollte ist die \textbf{ink minimization}. Dieses Prinzip fordert, dass
|
Prinzip fordert, dass das Verh\"altnis aus Tinte, die f\"ur die
|
||||||
das Verh\"altnis aus Tinte, die f\"ur die Darstellung der Daten
|
Darstellung der Daten gebraucht wird und der Menge Tinte, die f\"ur
|
||||||
gebraucht wird und der Menge Tinte, die f\"ur sonstige Elemente der
|
sonstige Elemente der Graphik aufgewendetwird m\"oglichst gro{\ss}
|
||||||
Graphik aufgewendet m\"oglichst gro{\ss} ist. Mit anderen Worten
|
ist. Mit anderen Worten: \"uberfl\"ussige Ausschm\"uckungen sollten
|
||||||
\"uberfl\"ussiger Ausschm\"uckungen sollten sich in Datenplots nur
|
sich in Datenplots nur selten finden lassen. Eine Ausnahme kann
|
||||||
selten finden lassen. Eine Ausnahme kann vielleicht gemacht werden,
|
gemacht werden, wenn der Plot z.B in einer Pr\"asentation oder zu
|
||||||
wenn der Plot z.B in einer Pr\"asentation oder zu didaktischen
|
didaktischen Zwecken genutzt wird.
|
||||||
Zwecken genutzt wird.
|
|
||||||
|
|
||||||
\subsection{Dinge, die vermieden werden sollten.}
|
\subsection{Dinge, die vermieden werden sollten.}
|
||||||
|
|
||||||
@ -45,13 +44,11 @@ Korrektheit besteht.
|
|||||||
wissenschaftlicher Daten nicht geeignet.}\label{comicexamplefig}
|
wissenschaftlicher Daten nicht geeignet.}\label{comicexamplefig}
|
||||||
\end{figure}
|
\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
|
Darstellungen gezeigt. Einiger dieser Effekte sind deutlich
|
||||||
\"uberzeichnet, die beschriebenen ``Tricks'' werden allerdings, etwas
|
\"uberzeichnet, sie werden aber, etwas dezenter nat\"urlich, mitunter
|
||||||
dezenter nat\"urlich, mitunter mit voller Absicht eingesetzt um die
|
mit voller Absicht eingesetzt um die Wahrnehmung in die gewollte
|
||||||
Wahrnehmung in die gewollte Richtung zu beeinflussen. Auf Wikipedia
|
Richtung zu beeinflussen. Auf Wikipedia gibt es weitere Beispiele
|
||||||
gibt es weitere Beispiele
|
|
||||||
(\url{https://en.wikipedia.org/wiki/Misleading_graph}).
|
(\url{https://en.wikipedia.org/wiki/Misleading_graph}).
|
||||||
|
|
||||||
Durch perspektivische Effekte k\"onnen Gr\"o{\ss}enverh\"altnisse
|
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.
|
\matlab{} heraus publikationsreife Abbildungen zu erzeugen.
|
||||||
|
|
||||||
|
|
||||||
|
Plots in \matlab{} bestehen aus mehreren Elementen:
|
||||||
TODOS\\
|
|
||||||
Elemente eines Plots:
|
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item Figure
|
\item \enterm{Figure}: Dieses Element stellt die gesamte
|
||||||
\item Axes
|
Zeichenf\"ache, das Blatt Papier, dar.
|
||||||
\item Lines
|
\item \enterm{Axes}: Das Koordinatensystem in welches gezeichnet wird.
|
||||||
\item Annotationen
|
\item \enterm{Lines}: Die gezeichneten Datenplots wie Linien,
|
||||||
\item Legende
|
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}
|
\end{enumerate}
|
||||||
|
|
||||||
\subsection{Einfaches Plotten}
|
Jedes dieser Elemente bietet eine Vielzahl von
|
||||||
TODO
|
Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese
|
||||||
|
\"uber die GUI (Abbildung \ref{ploteditorfig}) bearbeitet werden. Je
|
||||||
\subsection{Ver\"andern von Eigenschaften von Linen}
|
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{figure}
|
||||||
\begin{minipage}[t]{0.6\columnwidth}
|
\begin{minipage}[t]{0.6\columnwidth}
|
||||||
@ -166,69 +167,198 @@ TODO
|
|||||||
\begin{minipage}[t]{0.3\columnwidth}
|
\begin{minipage}[t]{0.3\columnwidth}
|
||||||
\includegraphics[width=0.9\textwidth]{property_editor}
|
\includegraphics[width=0.9\textwidth]{property_editor}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\caption{\textbf{Graphischer Plot Editor.} \"Uber das Menu
|
\caption{\textbf{Graphisches Interface: ``Plot Editor''.} \"Uber das Menu
|
||||||
``Tools->Edit Plot'' erreicht man den Plot Editor. Je nachdem
|
``Tools $\rightarrow$ Edit Plot'' erreicht man den Plot Editor. Je nachdem
|
||||||
welches Element des Plots ausgew\"ahlt wurde ver\"andern sich
|
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,
|
Einstellungen k\"onnen \"uber den ``Property Editor'', rechts,
|
||||||
eingesehen und ver\"andert werden. Der ``Property Editor'' ist
|
eingesehen und ver\"andert werden. Der ``Property Editor'' ist
|
||||||
\"uber die Schaltfl\"ache ``More Properties''
|
\"uber die Schaltfl\"ache ``More Properties''
|
||||||
erreichbar.}\label{ploteditorfig}
|
erreichbar.}\label{ploteditorfig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Alle Einstellungen, die man \"uber das graphische Interface machen
|
Alle Einstellungen, die \"uber das graphische Interface vorgenommen
|
||||||
kann sind auch \"uber Befehle auf der Kommandozeile m\"oglich. Das
|
werden k\"onnen sind auch \"uber Befehle auf der Kommandozeile
|
||||||
hei{\ss}t, dass die Einstellungen problemlos in ein Skript oder eine
|
m\"oglich. Das hei{\ss}t, dass die Einstellungen problemlos in ein
|
||||||
Funktion eingebaut werden k\"onnen. Dieser Ansatz hat den Vorteil,
|
Skript oder eine Funktion eingebaut werden k\"onnen. Dieser Ansatz hat
|
||||||
dass man sich die M\"uhe nur einmal machen muss. Zu den h\"aufigsten
|
den Vorteil, dass man sich die M\"uhe nur einmal machen muss. Die
|
||||||
Einstellungen geh\"oren:
|
Abbildungen k\"onnen exakt reprosuziert werden.
|
||||||
\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}
|
|
||||||
|
|
||||||
\subsection{Globale Einstellungen}
|
\subsection{Einfaches Plotten}
|
||||||
|
|
||||||
\TODO
|
Einen einfachen Linienplot zu erstellen ist denkbar
|
||||||
|
einfach. Angenommen, es existiert einer Variable \code{y} im
|
||||||
Das folgende Listing \ref{niceplotlisting} zeigt das Skript, das die
|
\enterm{Workspace}, die die darzustellenden Daten enth\"alt. Es
|
||||||
Abbildung \ref{spikedetectionfig} erstellt und speichert. Abh\"angig
|
gen\"ugt folgender Funktionsaufruf: \code{plot(y)}. Wenn bislang noch
|
||||||
davon, ob man Eigenschaften der Abbildung oder der Achsen setzen will
|
keine Abbildung erstellt wurde \"offnet \matlab{} ein neues Fenster
|
||||||
benutzt man die \code{set} Funktion und \"ubergibt ihr ein sogenanntes
|
und stellt die Daten als Linienplot dar. Dabei werden die Datenpunkte
|
||||||
Handle der Achse oder der Abbildung und sowohl den Namen als auch den
|
durch eine Linie verbunden. Die Messpunkte selbst sind nicht
|
||||||
gew\"unschten Wert der Eigenschaft: \code{set(gcf, 'PaperUnits',
|
sichtbar. Wenn schon eine Abbildung existiert, wird der Inhalt
|
||||||
'centimeters')} setzt die Eigenschaft ``PaperUnits'' der Abbildung
|
ersetzt. Das Festhalten von bestehenden Plots kann an- oder abgestellt
|
||||||
auf ``centimeters''. (Standard Einheit ist, nat\"urlich, ``inches''.)
|
werden indem \code{hold on} bzw. \code{hold off} vor dem \code{plot()}
|
||||||
\code{gcf} steht f\"ur ``get current figure'' und stellt ein Handle
|
Befehl aufgerufen wird.
|
||||||
der aktuellen Abbildung zur Verf\"ugung. Um Eigenschaften der Achse zu
|
|
||||||
setzten benutzt man: \code{set(gca, 'linewidth', 1.5)} wobei
|
Im obigen Plot Aufruf wird nur ein Argument, das \code{y}, an die
|
||||||
\code{gca} f\"ur ``get current axis'' steht. Wenn man den Namen einer
|
Funktion \code{plot} \"ubergeben. \code{plot} erh\"alt nur die
|
||||||
Eigenschaft nicht kennt, kann man entweder in der Hilfe nachschlagen
|
y-Werte. \matlab{} substituiert in diesem Fall die fehlenden x-Werte,
|
||||||
oder sie im ``Property Editor'' finden.
|
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]
|
\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, 'PaperUnits', 'centimeters', 'PaperSize', [11.7 9.0]);
|
||||||
set(gcf, 'PaperPosition',[0.0 0.0 11.7 9.0], 'Color', 'white')
|
set(gcf, 'PaperPosition',[0.0 0.0 11.7 9.0], 'Color', 'white')
|
||||||
hold on
|
hold on
|
||||||
@ -243,7 +373,7 @@ xlabel('time [s]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
|
|||||||
ylabel('potential [mV]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
|
ylabel('potential [mV]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
|
||||||
title('pyramidal cell', 'fontname', 'MyriadPro-Regular', 'fontsize', 12)
|
title('pyramidal cell', 'fontname', 'MyriadPro-Regular', 'fontsize', 12)
|
||||||
set(gca, 'TickDir','out', 'linewidth', 1.5, 'fontname', 'MyriadPro-Regular')
|
set(gca, 'TickDir','out', 'linewidth', 1.5, 'fontname', 'MyriadPro-Regular')
|
||||||
saveas(fig, 'spike_detection.pdf', 'pdf')
|
saveas(gcf, 'spike_detection.pdf', 'pdf')
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
@ -253,11 +383,61 @@ saveas(fig, 'spike_detection.pdf', 'pdf')
|
|||||||
gespeichert.}\label{spikedetectionfig}
|
gespeichert.}\label{spikedetectionfig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
|
|
||||||
Neben den Standard Linienplots gibt es eine ganze Reihe weiterer
|
Neben den Standard Linienplots gibt es eine ganze Reihe weiterer
|
||||||
M\"oglichkeiten Daten zu Visualisieren. Mathworks zeigt unter
|
M\"oglichkeiten Daten zu Visualisieren. Mathworks zeigt auf seiner
|
||||||
\url{http://www.mathworks.de/discovery/gallery.html} viele Beispiele
|
Homepage viele Beispiele mit zugeh\"origem Code
|
||||||
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}
|
\subsection{Fazit}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user