worked on the plotting chapter
This commit is contained in:
parent
de0aa2735b
commit
755f45b487
@ -8,16 +8,16 @@
|
|||||||
% \newcommand{\tr}[2]{#1} % en
|
% \newcommand{\tr}[2]{#1} % en
|
||||||
% \usepackage[english]{babel}
|
% \usepackage[english]{babel}
|
||||||
\newcommand{\tr}[2]{#2} % de
|
\newcommand{\tr}[2]{#2} % de
|
||||||
\usepackage[german]{babel}
|
\usepackage[ngerman]{babel}
|
||||||
|
|
||||||
%%%% layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%% layout %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\usepackage[left=25mm,right=25mm,top=20mm,bottom=30mm]{geometry}
|
\usepackage[left=25mm,right=25mm,top=20mm,bottom=30mm]{geometry}
|
||||||
\setcounter{tocdepth}{1}
|
|
||||||
\usepackage{pslatex} % nice font for pdf file
|
\usepackage{pslatex} % nice font for pdf file
|
||||||
|
|
||||||
%%%%% section style %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%% section style %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\usepackage[sf,bf,it,big,clearempty]{titlesec}
|
\usepackage[sf,bf,it,big,clearempty]{titlesec}
|
||||||
\setcounter{secnumdepth}{1}
|
\setcounter{secnumdepth}{1}
|
||||||
|
\setcounter{tocdepth}{1}
|
||||||
|
|
||||||
%%%%% units %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%% units %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\usepackage[mediumspace,mediumqspace,Gray]{SIunits} % \ohm, \micro
|
\usepackage[mediumspace,mediumqspace,Gray]{SIunits} % \ohm, \micro
|
||||||
|
36
plotting/lecture/outlier.py
Normal file
36
plotting/lecture/outlier.py
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
import numpy as np
|
||||||
|
import matplotlib.pyplot as plt
|
||||||
|
|
||||||
|
plt.xkcd()
|
||||||
|
fig = plt.figure( figsize=(5,3) )
|
||||||
|
|
||||||
|
# the data:
|
||||||
|
n = 50
|
||||||
|
rng = np.random.RandomState(4637281)
|
||||||
|
x = rng.rand(n)*9.0+0.5
|
||||||
|
y = rng.randn(n)*1.0+4.0
|
||||||
|
|
||||||
|
# plot it:
|
||||||
|
ax = fig.add_subplot( 1, 1, 1 )
|
||||||
|
ax.spines['right'].set_visible(False)
|
||||||
|
ax.spines['top'].set_visible(False)
|
||||||
|
ax.yaxis.set_ticks_position('left')
|
||||||
|
ax.xaxis.set_ticks_position('bottom')
|
||||||
|
ax.set_xlim(0, 10.0)
|
||||||
|
ax.set_ylim(0.0, 10.0)
|
||||||
|
ax.set_xticks( np.arange(0, 11, 2))
|
||||||
|
ax.set_yticks( np.arange(0, 11, 2))
|
||||||
|
ax.set_xlabel('Time [Days]')
|
||||||
|
ax.set_ylabel('Mass [kg]')
|
||||||
|
outlier = (3.3, 8.6)
|
||||||
|
ax.annotate('Outlier',
|
||||||
|
xy=(outlier[0]+0.2, outlier[1]), xycoords='data',
|
||||||
|
xytext=(5.4, 9.5), textcoords='data', ha='left',
|
||||||
|
arrowprops=dict(arrowstyle="->", relpos=(0.0,0.5),
|
||||||
|
connectionstyle="angle3,angleA=0,angleB=10") )
|
||||||
|
ax.scatter(x, y, s=50, c='b', zorder=5)
|
||||||
|
ax.scatter(outlier[0], outlier[1], s=80, c='#CC0000', zorder=10)
|
||||||
|
|
||||||
|
plt.tight_layout();
|
||||||
|
plt.savefig('outlier.pdf')
|
||||||
|
#plt.show();
|
@ -1,11 +1,9 @@
|
|||||||
\chapter{\tr{Data plotting}{Graphische Darstellung von Daten}}
|
\chapter{\tr{Data plotting}{Graphische Darstellung von Daten}}
|
||||||
|
|
||||||
\section{Dos and Don'ts bei der graphischen Darstellung von Daten}
|
|
||||||
|
|
||||||
Die F\"ahigkeit 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 durchaus zu den notwendigen Kernkompetenzen gez\"ahlt werden. 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 um das Verst\"andnis zu vereinfachen.
|
||||||
|
|
||||||
\begin{figure}[hb!]
|
\begin{figure}[hb!]
|
||||||
\includegraphics[width=0.9\columnwidth]{convincing}
|
\includegraphics[width=0.9\columnwidth]{convincing}
|
||||||
@ -13,62 +11,73 @@ und das Verst\"andnis zu vereinfachen
|
|||||||
Plots.}{\url{www.xkcd.com}} \label{xkcdplotting}
|
Plots.}{\url{www.xkcd.com}} \label{xkcdplotting}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\subsection{Was soll ein Plot leisten?}
|
\section{Was macht einen guten Plot aus?}
|
||||||
Graphen sollen dem geneigten Leser erm\"oglichen die Daten zu erfassen
|
Graphen sollen dem geneigten Leser erm\"oglichen, die Daten zu
|
||||||
und die beschriebenen Effekte zu begutachen, zu hinterfragen und zu
|
erfassen und die beschriebenen Ergebnisse und Effekte zu begutachen,
|
||||||
validieren. Eine der obersten Regeln ist die vollst\"andige Annotation
|
zu hinterfragen und zu validieren.
|
||||||
von Plots (Abbildung \ref{xkcdplotting}). Eine weiteres Prinzip, an
|
|
||||||
das man sich halten sollte, ist die \emph{ink minimization}. Dieses
|
Eine der obersten Regeln ist die vollst\"andige Annotation von Plots:
|
||||||
Prinzip fordert, dass das Verh\"altnis aus Tinte, die f\"ur die
|
Achsenbeschriftung mit Einheiten und Legenden
|
||||||
Darstellung der Daten gebraucht wird und der Menge Tinte, die f\"ur
|
(\figref{xkcdplotting}).
|
||||||
sonstige Elemente der Graphik aufgewendetwird m\"oglichst gro{\ss}
|
|
||||||
ist. Mit anderen Worten: \"uberfl\"ussige Ausschm\"uckungen sollten
|
Eine weiteres Prinzip f\"ur ansprechende Graphiken ist die \emph{ink
|
||||||
sich in Datenplots nur selten finden lassen. Eine Ausnahme kann
|
minimization}. Dieses Prinzip fordert, dass das Verh\"altnis aus
|
||||||
gemacht werden, wenn der Plot z.B in einer Pr\"asentation oder zu
|
Tinte, die f\"ur die Darstellung der Daten gebraucht wird und der
|
||||||
didaktischen Zwecken genutzt wird.
|
Menge Tinte, die f\"ur sonstige Elemente der Graphik aufgewendetwird
|
||||||
|
m\"oglichst gro{\ss} ist. Mit anderen Worten: \"uberfl\"ussige
|
||||||
\subsection{Dinge, die vermieden werden sollten.}
|
Ausschm\"uckungen sollten sich in Datenplots nur selten finden lassen;
|
||||||
|
die Daten sollen im Vordergrund stehen. Eine Ausnahme kann gemacht
|
||||||
|
werden, wenn der Plot z.B in einer Pr\"asentation oder zu didaktischen
|
||||||
|
Zwecken genutzt wird.
|
||||||
|
|
||||||
|
\begin{important}
|
||||||
|
Ein Datenplot muss ausreichend beschriftet werden:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Alle Achsen m\"ussen eine Bezeichnung und eine Einheit erhalten\\
|
||||||
|
(z.B. \code{xlabel('Geschwindigkeit [m/s]'}).
|
||||||
|
\item Wenn mehrere Dinge in einem Plot dargestellt werden, m\"ussen
|
||||||
|
diese mit einer Legende oder \"ahnlichem benannt werden
|
||||||
|
\matlabfun{legend()}.
|
||||||
|
\item Mehrere Plots mit den gleichen Gr\"o{\ss}en auf den Achsen,
|
||||||
|
m\"ussen den gleichen Wertebereich auf den Achsen zeigen
|
||||||
|
(z.B. \code{xlim([0 100])}.\\
|
||||||
|
Ausnnahmen sind m\"oglich, sollten aber in der
|
||||||
|
Abbildungsunterschrift erw\"ahnt werden.
|
||||||
|
\item Die Beschriftung mu{\ss} gro{\ss} genug sein, um lesbar zu sein.
|
||||||
|
\end{itemize}
|
||||||
|
\end{important}
|
||||||
|
|
||||||
|
|
||||||
|
\section{Dinge, die vermieden werden sollten.}
|
||||||
|
|
||||||
Bei der Darstellung wissenschaftlicher Daten sollte drauf geachtet
|
Bei der Darstellung wissenschaftlicher Daten sollte drauf geachtet
|
||||||
werden suggestive oder fehlleitende Darstellungen zu vermeiden.
|
werden suggestive oder fehlleitende Darstellungen zu vermeiden.
|
||||||
Ablenkung durch \"uberm\"a{\ss}ige Effekte lassen einen Plot unruhig
|
Ablenkung durch \"uberm\"a{\ss}ige Effekte lassen einen Plot unruhig
|
||||||
und unseri\"os wirken. Comicartige Effekte wie z.B. in Abbildung
|
und unseri\"os wirken (Versto{\ss} gegen das Prinzip \enterm{ink
|
||||||
\ref{comicexamplefig} sind in der Regel nicht zul\"assig. Ausnahme ist
|
minimization}). Comicartige Effekte wie z.B. in
|
||||||
hier allerdings der Einsatz im didaktischen Kontext, wo es um die
|
\figref{comicexamplefig} sind nicht geeignet um Daten darzustellen. Im
|
||||||
Illustration (z.B. einer Methode) geht und kein Anspruch auf
|
didaktischen Kontext hingegen kann dieser Stil Hilfreich sein, um zu
|
||||||
Korrektheit besteht.
|
betonen, dass es sich um illustrative Beispiele handelt bei denen es
|
||||||
|
nicht auf die genaue Lage der Datenpunkte ankommt.
|
||||||
\begin{figure}
|
|
||||||
\includegraphics[width=0.35\columnwidth]{images/one_d_problem_c}
|
\begin{figure}[t]
|
||||||
|
\includegraphics[width=0.7\columnwidth]{outlier}\vspace{-3ex}
|
||||||
\titlecaption{Comicartige Darstellungen}{ sind f\"ur die Darstellung
|
\titlecaption{Comicartige Darstellungen}{ sind f\"ur die Darstellung
|
||||||
wissenschaftlicher Daten nicht geeignet.}\label{comicexamplefig}
|
wissenschaftlicher Daten nicht geeignet. F\"ur illustrative Beispiele
|
||||||
|
k\"onnen sie aber helfen, die wesentlichen Aspekte zu betonen.}\label{comicexamplefig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
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, sie werden aber, etwas dezenter nat\"urlich, mitunter
|
\"uberzeichnet, sie werden aber, etwas dezenter nat\"urlich, mitunter
|
||||||
mit voller Absicht eingesetzt um die Wahrnehmung in die gewollte
|
mit voller Absicht eingesetzt, um die Wahrnehmung in die gewollte
|
||||||
Richtung zu beeinflussen. Auf Wikipedia gibt es weitere Beispiele
|
Richtung zu beeinflussen. Auf Wikipedia 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
|
\begin{figure}[p]
|
||||||
verzerrt dargestellt werden (z.B. Abbildung
|
\includegraphics[width=0.35\textwidth]{misleading_pie}
|
||||||
\ref{misleadingpiefig}). Ver\"anderung der Achsenskalierungen kann die
|
\hspace{0.05\textwidth}
|
||||||
Wahrnehmung des Betrachters in die ein oder andere Richtung
|
\includegraphics[width=0.35\textwidth]{sample_pie}
|
||||||
lenken. Ein Zusammenhang kann so verschleiert oder \"ubertrieben
|
|
||||||
werden (Abbildung \ref{misleadingscalingfig}). Insbesondere wenn die
|
|
||||||
Gr\"o{\ss}e von Symbolen zur Darstellung einer Quantit\"at eingesetzt
|
|
||||||
werden, muss man mit Vorsicht vorgehen um Unterschiede nicht
|
|
||||||
\"uberproportional darzustellen (Abbildung
|
|
||||||
\ref{misleadingsymbolsfig}).
|
|
||||||
|
|
||||||
\begin{figure}
|
|
||||||
\begin{minipage}[t]{0.4\textwidth}
|
|
||||||
\includegraphics[width=\textwidth]{images/misleading_pie}
|
|
||||||
\end{minipage}
|
|
||||||
\begin{minipage}[t]{0.4\textwidth}
|
|
||||||
\includegraphics[width=\textwidth]{images/sample_pie}
|
|
||||||
\end{minipage}
|
|
||||||
\titlecaption{Perspektivische Verzerrung beeinflusst die
|
\titlecaption{Perspektivische Verzerrung beeinflusst die
|
||||||
Gr\"o{\ss}enwahrnehmung.}{Durch die Wahl der perspektivischen
|
Gr\"o{\ss}enwahrnehmung.}{Durch die Wahl der perspektivischen
|
||||||
Darstellung erscheint das hervorgehobene Segment C des
|
Darstellung erscheint das hervorgehobene Segment C des
|
||||||
@ -79,15 +88,15 @@ werden, muss man mit Vorsicht vorgehen um Unterschiede nicht
|
|||||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}}\label{misleadingpiefig}
|
\url{https://en.wikipedia.org/wiki/Misleading_graph}}\label{misleadingpiefig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}[p]
|
||||||
\begin{minipage}[t]{0.3\textwidth}
|
\begin{minipage}[t]{0.3\textwidth}
|
||||||
\includegraphics[width=0.9\textwidth]{images/line_graph1}
|
\includegraphics[width=0.9\textwidth]{line_graph1}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\begin{minipage}[t]{0.3\textwidth}
|
\begin{minipage}[t]{0.3\textwidth}
|
||||||
\includegraphics[width=0.9\textwidth]{images/line_graph1_3}
|
\includegraphics[width=0.9\textwidth]{line_graph1_3}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\begin{minipage}[t]{0.3\textwidth}
|
\begin{minipage}[t]{0.3\textwidth}
|
||||||
\includegraphics[width=0.9\textwidth]{images/line_graph1_4}
|
\includegraphics[width=0.9\textwidth]{line_graph1_4}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\titlecaption{Die Wahl der Zeichenfl\"ache beeinflusst den visuellen
|
\titlecaption{Die Wahl der Zeichenfl\"ache beeinflusst den visuellen
|
||||||
Eindruck.}{Alle drei Plots zeigen die gleichen Daten. Allein die
|
Eindruck.}{Alle drei Plots zeigen die gleichen Daten. Allein die
|
||||||
@ -97,15 +106,15 @@ werden, muss man mit Vorsicht vorgehen um Unterschiede nicht
|
|||||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}}\label{misleadingscalingfig}
|
\url{https://en.wikipedia.org/wiki/Misleading_graph}}\label{misleadingscalingfig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}[p]
|
||||||
\begin{minipage}[t]{0.3\textwidth}
|
\begin{minipage}[t]{0.3\textwidth}
|
||||||
\includegraphics[width=0.8\textwidth]{images/improperly_scaled_graph}
|
\includegraphics[width=0.8\textwidth]{improperly_scaled_graph}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\begin{minipage}[t]{0.3\textwidth}
|
\begin{minipage}[t]{0.3\textwidth}
|
||||||
\includegraphics[width=0.8\textwidth]{images/comparison_properly_improperly_graph}
|
\includegraphics[width=0.8\textwidth]{comparison_properly_improperly_graph}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\begin{minipage}[t]{0.3\textwidth}
|
\begin{minipage}[t]{0.3\textwidth}
|
||||||
\includegraphics[width=0.7\textwidth]{images/properly_scaled_graph}
|
\includegraphics[width=0.7\textwidth]{properly_scaled_graph}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\titlecaption{Die Skalierung von Symbolen kann problematisch sein.}
|
\titlecaption{Die Skalierung von Symbolen kann problematisch sein.}
|
||||||
{In diesen Graphen werden Symbole eingesetzt um Messgr\"o{\ss}en in
|
{In diesen Graphen werden Symbole eingesetzt um Messgr\"o{\ss}en in
|
||||||
@ -120,25 +129,30 @@ werden, muss man mit Vorsicht vorgehen um Unterschiede nicht
|
|||||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}} \label{misleadingsymbolsfig}
|
\url{https://en.wikipedia.org/wiki/Misleading_graph}} \label{misleadingsymbolsfig}
|
||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
\newpage
|
Durch perspektivische Effekte k\"onnen Gr\"o{\ss}enverh\"altnisse
|
||||||
|
verzerrt dargestellt werden (\figref{misleadingpiefig}). Ver\"anderung
|
||||||
|
der Achsenskalierungen kann die Wahrnehmung des Betrachters in die
|
||||||
|
eine oder andere Richtung lenken. Ein Zusammenhang kann so
|
||||||
|
verschleiert oder \"ubertrieben werden
|
||||||
|
(\figref{misleadingscalingfig}). Insbesondere wenn die Gr\"o{\ss}e
|
||||||
|
von Symbolen zur Darstellung einer Quantit\"at eingesetzt werden, muss
|
||||||
|
mit Vorsicht vorgegangen werden, um Unterschiede nicht \"uberproportional
|
||||||
|
darzustellen (\figref{misleadingsymbolsfig}).
|
||||||
|
|
||||||
\section{Das Plottingsystem von \matlab{}}
|
\section{Das Plottingsystem von \matlab{}}
|
||||||
|
|
||||||
Plotten in \matlab{} ist zun\"achst einmal einfach. Durch den Aufruf
|
Plotten in \matlab{} ist zun\"achst einmal einfach. Durch den Aufruf
|
||||||
von \code{plot(x, y)} wird ein einfacher, schlichter Linienplot
|
von \code{plot(x, y)} wird ein einfacher, schlichter Linienplot
|
||||||
erstellt. Zun\"achst fehlen diesem Plot jegliche Annotationen wie
|
erstellt. Diesem Plot fehlen jedoch jegliche Annotationen wie
|
||||||
Achsbeschriftungen, Legenden, etc. Um diese hizuzuf\"ugen kann man
|
Achsbeschriftungen, Legenden, etc. Es gibt zwei M\"oglichkeiten diese
|
||||||
zwei Wege gehen: Das Graphische User Interface oder die
|
hinzuzuf\"ugen: (i) das Graphische User Interface oder (ii) die
|
||||||
Kommandozeile. Beide haben ihre Berechtigung sowie Vor- und
|
Kommandozeile. Beide haben ihre Berechtigung sowie Vor- und
|
||||||
Nachteile. W\"ahrend es bequem ist, die Abbildung mit der GUI
|
Nachteile.
|
||||||
(Abbildung \ref{ploteditorfig}) zu bearbeiten sind die erhaltenen
|
|
||||||
Ergebnisse nicht einfach reproduzierbar. Wenn eine Abbildung
|
|
||||||
korrigiert werden musss, wird es schwierig und zeitaufwendig. Die
|
|
||||||
nachtr\"agliche Bearbeitung der Abbildungen mit einem beliebigen
|
|
||||||
Graphikprogramm erscheitn bequem, birgt seine eigenen Risiken und ist
|
|
||||||
auf lange Sicht sehr aufwendig. Das Bestreben sollte sein, aus
|
|
||||||
\matlab{} heraus publikationsreife Abbildungen zu erzeugen.
|
|
||||||
|
|
||||||
|
W\"ahrend es bequem ist, die Abbildung mit der GUI
|
||||||
|
(\figref{ploteditorfig}) zu bearbeiten sind die erhaltenen Ergebnisse
|
||||||
|
nicht einfach reproduzierbar oder \"ubertragbar. Wenn eine Abbildung
|
||||||
|
korrigiert werden musss, wird es schwierig und zeitaufwendig.
|
||||||
|
|
||||||
Plots in \matlab{} bestehen aus mehreren Elementen:
|
Plots in \matlab{} bestehen aus mehreren Elementen:
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
@ -148,17 +162,13 @@ Plots in \matlab{} bestehen aus mehreren Elementen:
|
|||||||
\item \enterm{Lines}: Die gezeichneten Datenplots wie Linien,
|
\item \enterm{Lines}: Die gezeichneten Datenplots wie Linien,
|
||||||
Fl\"achen, etc.
|
Fl\"achen, etc.
|
||||||
\item \enterm{Annotations}: Annotationen wie Textboxen oder auch
|
\item \enterm{Annotations}: Annotationen wie Textboxen oder auch
|
||||||
Pfeil, die zum Hervorheben von Punkten, oder Abschnitten gedacht
|
Pfeile, die zum Hervorheben von Punkten, oder Abschnitten gedacht
|
||||||
sind.
|
sind.
|
||||||
\item \enterm{Legends}: Legenden der Daten plots.
|
\item \enterm{Legends}: Legenden der Datenplots.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
Jedes dieser Elemente bietet eine Vielzahl von
|
Jedes dieser Elemente bietet eine Vielzahl von
|
||||||
Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese
|
Einstellungsm\"oglichkeiten. Wie schon erw\"ahnt, k\"onnen diese
|
||||||
\"uber die GUI (Abbildung \ref{ploteditorfig}) bearbeitet werden. Je
|
\"uber die GUI (Abbildung \ref{ploteditorfig}) bearbeitet werden.
|
||||||
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}
|
||||||
@ -167,9 +177,9 @@ des Editors.
|
|||||||
\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{Graphisches Interface: ``Plot Editor''.} \"Uber das Menu
|
\caption{\textbf{Graphisches Interface ``Plot Editor''.} \"Uber das Menu
|
||||||
``Tools $\rightarrow$ 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
|
||||||
die 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
|
||||||
@ -178,11 +188,26 @@ des Editors.
|
|||||||
\end{figure}
|
\end{figure}
|
||||||
|
|
||||||
Alle Einstellungen, die \"uber das graphische Interface vorgenommen
|
Alle Einstellungen, die \"uber das graphische Interface vorgenommen
|
||||||
werden k\"onnen sind auch \"uber Befehle auf der Kommandozeile
|
werden k\"onnen, sind auch \"uber Befehle auf der Kommandozeile
|
||||||
m\"oglich. Das hei{\ss}t, dass die Einstellungen problemlos in ein
|
m\"oglich. Auf diese Weise k\"onnen Einstellungen problemlos in ein
|
||||||
Skript oder eine Funktion eingebaut werden k\"onnen. Dieser Ansatz hat
|
Skript oder eine Funktion eingebaut werden. Dieser Ansatz hat den
|
||||||
den Vorteil, dass man sich die M\"uhe nur einmal machen muss. Die
|
gro{\ss}en Vorteil, dass man sich die M\"uhe nur einmal machen
|
||||||
Abbildungen k\"onnen exakt reprosuziert werden.
|
muss. Die Abbildungen k\"onnen exakt reproduziert werden und m\"ussen
|
||||||
|
nicht mehr neu beschriftet werden, wenn sich die Daten ver\"andert
|
||||||
|
oder erweitert haben, oder wenn der gleiche Plot von vielen
|
||||||
|
Datens\"atzen erstellt werden soll.
|
||||||
|
|
||||||
|
\begin{important}
|
||||||
|
Das nachtr\"agliche Bearbeiten und Beschriften der Abbildungen mit
|
||||||
|
einem beliebigen Graphikprogramm erscheint auf den ersten Blick
|
||||||
|
bequem, birgt aber seine eigenen Risiken (z.B. verrutschte Achsen,
|
||||||
|
verlorengegangene Beschriftungen, etc.) und ist auf lange Sicht sehr
|
||||||
|
aufwendig, da bei ver\"anderter Datenlage die Graphik nur manuell
|
||||||
|
reproduzierbar ist. Deshalb sollten publikationsreife Abbildungen immer
|
||||||
|
vollst\"andig aus \matlab{} heraus erzeugt werden und eine
|
||||||
|
Nachbearbeitung mit Graphikprogrammen m\"oglichst ganz vermieden
|
||||||
|
werden.
|
||||||
|
\end{important}
|
||||||
|
|
||||||
\subsection{Einfaches Plotten}
|
\subsection{Einfaches Plotten}
|
||||||
|
|
||||||
@ -190,7 +215,7 @@ Einen einfachen Linienplot zu erstellen ist denkbar
|
|||||||
einfach. Angenommen, es existiert einer Variable \code{y} im
|
einfach. Angenommen, es existiert einer Variable \code{y} im
|
||||||
\enterm{Workspace}, die die darzustellenden Daten enth\"alt. Es
|
\enterm{Workspace}, die die darzustellenden Daten enth\"alt. Es
|
||||||
gen\"ugt folgender Funktionsaufruf: \code{plot(y)}. Wenn bislang noch
|
gen\"ugt folgender Funktionsaufruf: \code{plot(y)}. Wenn bislang noch
|
||||||
keine Abbildung erstellt wurde \"offnet \matlab{} ein neues Fenster
|
keine Abbildung erstellt wurde, \"offnet \matlab{} ein neues Fenster
|
||||||
und stellt die Daten als Linienplot dar. Dabei werden die Datenpunkte
|
und stellt die Daten als Linienplot dar. Dabei werden die Datenpunkte
|
||||||
durch eine Linie verbunden. Die Messpunkte selbst sind nicht
|
durch eine Linie verbunden. Die Messpunkte selbst sind nicht
|
||||||
sichtbar. Wenn schon eine Abbildung existiert, wird der Inhalt
|
sichtbar. Wenn schon eine Abbildung existiert, wird der Inhalt
|
||||||
@ -206,26 +231,25 @@ 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,
|
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
|
die zugeh\"origen x-Werte explixit zu \"ubergeben und so z.B. die
|
||||||
y-Werte als Funktion der Zeit darzustellen (\code{plot(x, y)}).
|
y-Werte als Funktion der Zeit darzustellen (\code{plot(x, y)}).
|
||||||
Standard\"a{\ss}ig wird der erste Lininenplot mit in blau, mit
|
Standard\"a{\ss}ig wird der erste Lininenplot in blau, mit
|
||||||
durchgezogener Linie, ohne Marker und der Strichst\"arke 1
|
durchgezogener Linie, ohne Marker und der Strichst\"arke 1
|
||||||
dargestellt. Der zweite Linienplot erh\"alt automatisch die Farbe
|
dargestellt. Der zweite Linienplot erh\"alt automatisch die Farbe
|
||||||
'rot'. Alle anderen Eigenschaften sind identisch. Die Reihenfolge der
|
'rot'. Alle anderen Eigenschaften sind identisch. Die Reihenfolge der
|
||||||
Farben ist vordefiniert kann aber durch das Setzen einer
|
Farben ist vordefiniert kann aber durch das Setzen einer
|
||||||
\enter{colormap} beeinflusst werden. Die Tabellen
|
\enter{colormap} beeinflusst werden. Die Tabellen
|
||||||
\ref{plotlinestyles} zeigen vordefinierte Werte f\"r den Linienstil,
|
\ref{plotlinestyles} zeigen vordefinierte Werte f\"ur den Linienstil,
|
||||||
die Farbe und die verschiedenen Marker.
|
die Farbe und die verschiedenen Marker.
|
||||||
|
|
||||||
|
|
||||||
\begin{table}[tp]
|
\begin{table}[tp]
|
||||||
\titlecaption{Vordefinierte Linienstile (links), Farben (Mitte) und Markersymbole (rechts).}{}\label{plotlinestyles}
|
\titlecaption{Vordefinierte Linienstile (links), Farben (Mitte) und Markersymbole (rechts).}{}\label{plotlinestyles}
|
||||||
\begin{minipage}[t]{0.3\textwidth}
|
\begin{minipage}[t]{0.3\textwidth}
|
||||||
\vspace{0pt}
|
\vspace{0pt}
|
||||||
\begin{tabular}{c|l}
|
\begin{tabular}{c|l}
|
||||||
\textbf{Linienstil} & \textbf{K\"urzel} \\\hline
|
\textbf{Linienstil} & \textbf{K\"urzel} \\\hline
|
||||||
durchgezogen & '-' \\
|
durchgezogen & '\verb|-|' \\
|
||||||
gestrichelt & '--' \\
|
gestrichelt & '\verb|--|' \\
|
||||||
gepunktet & ':' \\
|
gepunktet & '\verb|:|' \\
|
||||||
Strichpunkte & '.-' \\\hline
|
Strichpunkte & '\verb|.-|' \\\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\vspace{0pt}
|
\vspace{0pt}
|
||||||
@ -266,13 +290,12 @@ die Farbe und die verschiedenen Marker.
|
|||||||
|
|
||||||
\subsection{Ver\"andern von Linieneigenschaften}
|
\subsection{Ver\"andern von Linieneigenschaften}
|
||||||
|
|
||||||
Will man die Eigenschaften des Linienplots selbst bestimmen, so
|
Die Eigenschaften des Linienplots k\"onnen \"uber weitere Argumente
|
||||||
empfiehlt es sich das dem \code{plot} Befehlt mitzuteilen. Folgender
|
des \code{plot} Befehls ver\"andert werden. Folgender Aufruf erzeugt
|
||||||
Aufruft erzeugt einen roten Linienplot mit gepunkteter Linie der
|
einen roten Linienplot mit gepunkteter Linie der St\"arke 1.5 und
|
||||||
St\"arke 1.5 und Strenmarkern and den Positionen der
|
Sternmarkern an den Positionen der Datenpunkte. Zus\"atzlich wird noch
|
||||||
Datenpunkte. Zus\"atzlich wird noch die Eigenschaft
|
die Eigenschaft \codeterm{displayname} gesetzt, um dem Linienplot
|
||||||
\codeterm{displayname} gesetzt, um dem Linienplot einen Namen zu
|
einen Namen zu geben, der in einer Legende verwendet werden kann.
|
||||||
geben, der in einer Legende verwendet werden kann.
|
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
x = 0:0.1:2*pi;
|
x = 0:0.1:2*pi;
|
||||||
y = sin(x);
|
y = sin(x);
|
||||||
@ -281,36 +304,39 @@ geben, der in einer Legende verwendet werden kann.
|
|||||||
|
|
||||||
\subsection{Ver\"andern von Achseneigenschaften}
|
\subsection{Ver\"andern von Achseneigenschaften}
|
||||||
|
|
||||||
Das erste, was ein Plot braucht ist eine Achsenbeschriftung. Mithilfe
|
Das erste, was ein Plot zus\"atzlich braucht, ist eine
|
||||||
der Funktionen \code{xlabel('Time [ms]')} und \code{ylabel('Voltage
|
Achsenbeschriftung. Mithilfe der Funktionen \code{xlabel('Time [ms]')}
|
||||||
[V]')} k\"onnen diese gesetzt werden. Standardm\"a{\ss}ig setzt
|
und \code{ylabel('Voltage [V]')} k\"onnen diese gesetzt
|
||||||
Matlab die Grenzen der x- und y-Achse so, dass die Daten
|
werden.
|
||||||
hineinpassen. Dabei wird meist auf den n\"achsten ganzzahligen Wert
|
|
||||||
aufgerundet. Will man diese manuell bestimmen, dann benutzt man die
|
Standardm\"a{\ss}ig setzt Matlab die Grenzen der x- und y-Achse so,
|
||||||
Funktionen \code{xlim} und \code{ylim}. Diese erwarten als Argument
|
dass die Daten hineinpassen. Dabei wird meist auf den n\"achsten
|
||||||
einen 2-elementigen Vektor mit dem Minimum und dem Maximum der
|
ganzzahligen Wert aufgerundet. Mit den Funktionen \code{xlim} und
|
||||||
jeweiligen Achse. Tabelle \ref{plotaxisprops} listet weitere h\"aufig
|
\code{ylim} k\"onnen diese manuell eingestellt werden. Diese
|
||||||
genutzte Einstellungen der Achsen. Um sie zu ver\"andern benutzt man
|
Funktionen erwarten als Argument einen 2-elementigen Vektor mit dem
|
||||||
die Funktion \code{set}. Listing \ref{niceplotlisting} Zeile 15 zeigt
|
Minimum und dem Maximum der jeweiligen Achse. Tabelle
|
||||||
wie sie verwendet wird. Die Funktion erwartet als erstes Argument ein
|
\ref{plotaxisprops} listet weitere h\"aufig genutzte Einstellungen der
|
||||||
sogenanntes Handle der Achse, dieses wird gefolgt von einer beliebig
|
Achsen. Mit der \code{set} - Funktion k\"onnen diese ver\"andert
|
||||||
langen Reihe von Eigenschaft-Wert Paaren. Soll z.B. das Gitternetz der
|
werden wie in Zeile 15 in Listing \ref{niceplotlisting} gezeigt. Die
|
||||||
x-Achse gezeigt werden, wird die Eigenschaft \codeterm{XGrid} auf den
|
\code{set} - Funktion erwartet als erstes Argument ein sogenanntes Handle der
|
||||||
Wert \codeterm{'on'} gesetzt: \code{set(gca, 'XGrid', 'on');}. Das
|
Achse, dieses wird gefolgt von einer beliebig langen Reihe von
|
||||||
erste Argument ist ein Aufruf der Funktion \code{gca},
|
Eigenschaft-Wert Paaren. Soll z.B. das Gitternetz der x-Achse gezeigt
|
||||||
``get-current-axis'' und ist das Achsenhandle.
|
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 der gerade aktiven Achse.
|
||||||
|
|
||||||
\begin{table}[tp]
|
\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}
|
\titlecaption{Ausgew\"ahlte Eigenschaften der Achse.}{ Alle Eigenschaften der Achse findet man in der Hilfe oder im \codeterm{Property Editor} (\figref{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}}
|
\begin{tabular*}{1\textwidth}{lp{6.3cm}p{6cm}} \hline
|
||||||
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
|
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
|
||||||
\codeterm{Box} & Definiert, ob der Rahmen der Achse vollst\"andig gezeichnet wird. & $\{'on'|'off'\}$ \\
|
\codeterm{Box} & Definiert, ob der Rahmen der Achse vollst\"andig gezeichnet wird. & $\{'on'|'off'\}$ \\
|
||||||
\codeterm{Color} & Hintergrundfarbe des Koordinatensystems. & Beliebige RGB, CMYK ... Werte. \\
|
\codeterm{Color} & Hintergrundfarbe des Koordinatensystems. & Beliebige RGB, CMYK ... Werte. \\
|
||||||
\codeterm{Fontname} & Der Name der Schriftart. & Im System installierte Schriften. \\
|
\codeterm{Fontname} & Der Name der Schriftart. & Im System installierte Schriften. \\
|
||||||
\codeterm{FontSize} & Gr\"o{\ss}e der Schrift. & Skalarer Wert.\\
|
\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{FontUnit} & Einheit, in der die Schriftgr\"o{\ss}e bestimmt wird. & $\{'points' | 'centimeters' | 'inches', ...\}$\\
|
||||||
\codeterm{FontWeight} & Fett- oder Normalsatz der Schrift. & $\{normal' | 'bold'\}$\\
|
\codeterm{FontWeight} & Fett- oder Normalsatz der Schrift. & $\{'normal' | 'bold'\}$\\
|
||||||
& 'd' \\
|
% & 'd' \\ ??????
|
||||||
\codeterm{TickDir} & Richtung der Teilstriche auf der Achse. & $\{'in' | 'out'\}$\\
|
\codeterm{TickDir} & Richtung der Teilstriche auf der Achse. & $\{'in' | 'out'\}$\\
|
||||||
\codeterm{TickLength} & L\"ange der Haupt- und Nebenteilstriche & \\
|
\codeterm{TickLength} & L\"ange der Haupt- und Nebenteilstriche & \\
|
||||||
\codeterm{X-, Y-, ZDir} & Richtung der Achsskalierung. & $\{'normal' | 'reversed'\}$\\
|
\codeterm{X-, Y-, ZDir} & Richtung der Achsskalierung. & $\{'normal' | 'reversed'\}$\\
|
||||||
@ -318,23 +344,15 @@ erste Argument ist ein Aufruf der Funktion \code{gca},
|
|||||||
\codeterm{X-, Y-, ZScale} & Lineare oder logarithmische Skalierung der Achse. & $\{'linear' | 'log'\}$\\
|
\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-, 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
|
\codeterm{X-, Y-, ZTickLabel} & Beschriftung der Teilstriche. & Vektor mit entsprechenden Zahlen oder Cell-Array mit Strings.\\ \hline
|
||||||
\end{tabular}
|
\end{tabular*}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Ver\"andern von Figure-Einstellungen}
|
\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]
|
\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}
|
\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 (\figref{ploteditorfig}).}\label{plotfigureprops}
|
||||||
\begin{tabular}{l|p{5cm}|p{5cm}}
|
\begin{tabular*}{1\textwidth}{lp{6.3cm}p{6cm}} \hline
|
||||||
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
|
\textbf{Eigenschaft} & \textbf{Beschreibung} & \textbf{Optionen} \\ \hline
|
||||||
\codeterm{Color} & Hintergrundfarbe der Zeichenfl\"ache. & Beliebige RGB, CMYK ... Werte. \\
|
\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{PaperPosition} & Posistion der Abbildung auf dem Papier & 4-elementiger Vektor mit den Positionen der linken-unteren, und rechten-oberen Ecke. \\
|
||||||
@ -344,6 +362,14 @@ Koordinatensystem. Statt der Funktion \code{gca} wird \code{gcf},
|
|||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
|
Wie die Achse, hat auch das \codeterm{Figure} Element eine Reihe von
|
||||||
|
Eigenschaften, die nach Bedarf mit der \cide{set} - Funktion gesetzt
|
||||||
|
werden k\"onnen (Tabelle \ref{plotfigureprops} listet die
|
||||||
|
meistverwendeten). Das erste Argument f\"ur \code{set()} ist jetzt
|
||||||
|
aber eine Handle f\"ur die Abbildung, nicht das
|
||||||
|
Koordinatensystem. Statt der Funktion \code{gca} wird \code{gcf}
|
||||||
|
(\enterm{get-current-figure}) benutzt.
|
||||||
|
|
||||||
Das folgende Listing \ref{niceplotlisting} zeigt wie ein Skript
|
Das folgende Listing \ref{niceplotlisting} zeigt wie ein Skript
|
||||||
aussehen k\"onnte, das die notwendigen Anpassungen vornimmt. Bei jedem
|
aussehen k\"onnte, das die notwendigen Anpassungen vornimmt. Bei jedem
|
||||||
Aufruf des Skripts wird exakt der gleiche Plot (Abbildung
|
Aufruf des Skripts wird exakt der gleiche Plot (Abbildung
|
||||||
@ -355,7 +381,6 @@ gespeichert. Dazu wird die Funktion \code{saveas} verwendet, die als
|
|||||||
erstes Argument wieder ein Handle auf die Figure erwartet. Das zweite
|
erstes Argument wieder ein Handle auf die Figure erwartet. Das zweite
|
||||||
Argument ist der Dateiname, und zuletzt muss das gew\"unschte Format
|
Argument ist der Dateiname, und zuletzt muss das gew\"unschte Format
|
||||||
(Box \ref{graphicsformatbox}) angegeben werden.
|
(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]
|
||||||
figure()
|
figure()
|
||||||
@ -377,86 +402,91 @@ saveas(gcf, 'spike_detection.pdf', 'pdf')
|
|||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\begin{figure}
|
\begin{figure}
|
||||||
\includegraphics[width=0.5\columnwidth]{./images/spike_detection}
|
\includegraphics[width=0.5\columnwidth]{spike_detection}
|
||||||
\caption{\textbf{Annehmbarer Plot.} Dieser Plot wurde vollst\"andig
|
\caption{\textbf{Annehmbarer Plot.} Dieser Plot wurde vollst\"andig
|
||||||
mit dem Skript in Listing \ref{niceplotlisting} erstellt und
|
mit dem Skript in Listing \ref{niceplotlisting} erstellt und
|
||||||
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 auf seiner
|
M\"oglichkeiten Daten zu Visualisieren. Mathworks zeigt auf seiner
|
||||||
Homepage viele Beispiele mit zugeh\"origem Code
|
Homepage viele Beispiele mit zugeh\"origem Code
|
||||||
\url{http://www.mathworks.de/discovery/gallery.html}.
|
\url{http://www.mathworks.de/discovery/gallery.html}.
|
||||||
|
|
||||||
|
|
||||||
\begin{ibox}[t]{\label{graphicsformatbox}Dateiformate f\"ur Abbildungen.}
|
\begin{ibox}[t]{\label{graphicsformatbox}Dateiformate f\"ur Abbildungen.}
|
||||||
Im Wesentlichen gibt es zwei Arten von Dateiformaten f\"ur
|
Es gibt zwei grunds\"atzlich verschiedene Arten von Dateiformaten f\"ur
|
||||||
Graphiken.
|
Graphiken:
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item \determ{Rastergraphik} (\enterm{Bitmap})
|
\item \determ{Rastergraphik} (\enterm{bitmap})
|
||||||
\item \determ{Vektorgraphik} (\enterm{vector graphics})
|
\item \determ{Vektorgraphik} (\enterm{vector graphics})
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
Bei Rastergraphiken wird f\"ur jeden Bildpunkt (jedes Pixel) der
|
Bei Rastergraphiken wird f\"ur jeden Bildpunkt (jedes Pixel) der
|
||||||
aktuelle Farbwert angegeben. Sie sind vor allem f\"ur Fotos
|
aktuelle Farbwert angegeben. Rastergraphiken haben eine bestimmte
|
||||||
geeignet. Im Gegensatz dazu werden bei Vektorgraphiken die
|
Aufl\"osung (z.B. 300\,dpi --- dots per inch). Sie sind vor allem
|
||||||
Abbildungen durch sogenannte Primitive (Linien, Kreise, Polygone
|
f\"ur Fotos geeignet. Im Gegensatz dazu werden bei Vektorgraphiken
|
||||||
...) beschrieben. Der Vorteil der Vektorgraphiken
|
die Abbildungen durch sogenannte Primitive (Linien, Kreise,
|
||||||
ist die Skalierbakeit ohne Qualit\"atsverlust.\\
|
Polygone, ...) beschrieben. Der Vorteil der Vektorgraphiken
|
||||||
|
ist die Skalierbakeit ohne Qualit\"atsverlust.
|
||||||
|
|
||||||
\begin{minipage}[t]{0.42\textwidth}
|
\vspace{1ex}
|
||||||
\includegraphics[width=\textwidth]{VectorBitmap.pdf}
|
\begin{minipage}[t]{0.38\textwidth}
|
||||||
\small{by Darth Stabro at en.wikipedia.org}
|
\mbox{}\\[-2ex]
|
||||||
\vspace{0.1cm}
|
\includegraphics[width=0.93\textwidth]{VectorBitmap.pdf}
|
||||||
|
\rotatebox{90}{\footnotesize by Darth Stabro at en.wikipedia.org}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\begin{flushright}
|
\hfill
|
||||||
\begin{minipage}[t]{0.5\textwidth}
|
\begin{minipage}[t]{0.5\textwidth}
|
||||||
\vspace{-9.5cm}
|
Von \matlab{} unterst\"utzte Formate\footnote{Auswahl, mehr Information in der Hilfe zu \code{saveas}}:\\[2ex]
|
||||||
Von \matlab{} unterst\"utzte Formate\footnote{Auswahl, mehr Information in der Hilfe zu \code{saveas}}:\\
|
\begin{tabular}{|l|c|l|}
|
||||||
\begin{tabular}{l|c|l}
|
\hline
|
||||||
\textbf{Format} & \textbf{Typ} & \code{saveas} Argument} \\ \hline
|
\textbf{Format} & \textbf{Typ} & \code{saveas} Argument \rule[-1.2ex]{0pt}{3.5ex} \\ \hline
|
||||||
pdf & Vektor & \codeterm{'pdf'} \\
|
pdf & Vektor & \codeterm{'pdf'} \rule{0pt}{2.5ex} \\
|
||||||
eps & Vektor & \codeterm{'eps','epsc'} \\
|
eps & Vektor & \codeterm{'eps', 'epsc'} \\
|
||||||
SVG & Vektor & \codeterm{'svg'} \\
|
SVG & Vektor & \codeterm{'svg'} \\
|
||||||
PS & Vektor & \codeterm{'ps', 'psc'} \\
|
PS & Vektor & \codeterm{'ps', 'psc'} \\
|
||||||
jpg & Bitmap & \codeterm{'jpeg'} \\
|
jpg & Bitmap & \codeterm{'jpeg'} \\
|
||||||
tif & Bitmap & \codeterm{'tiff', 'tiffn'} \\
|
tif & Bitmap & \codeterm{'tiff', 'tiffn'} \\
|
||||||
png & Bitmap & \codeterm{'png'} \\
|
png & Bitmap & \codeterm{'png'} \\
|
||||||
bmp & Bitmap & \codeterm{'bmp'} \\
|
bmp & Bitmap & \codeterm{'bmp'} \\ \hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\end{flushright}
|
\vspace{1ex}
|
||||||
|
|
||||||
Wenn aus \matlab{} heraus Graphiken gespeichert werden sollen, dann
|
Wenn aus \matlab{} heraus Graphiken gespeichert werden sollen, dann
|
||||||
ist es meist sinnvoll sie als Vektorgraphik zu speichern. Im
|
ist es meistens sehr sinnvoll sie als Vektorgraphik zu speichern. Im
|
||||||
Zweifelsfall k\"onnen diese sp\"ater in Rastergraphiken umgewandelt
|
Zweifelsfall k\"onnen diese sp\"ater immer noch in Rastergraphiken
|
||||||
werden. Der Weg von einer Rastergraphik zu einer Vektorgraphik ist
|
umgewandelt werden. Der Weg von einer Rastergraphik zu einer
|
||||||
nich verlustfrei m\"oglich. Das Speichern von Abbildungen mit sehr
|
Vektorgraphik ist dagegen nicht verlustfrei m\"oglich. Das Speichern von
|
||||||
vielen graphischen Elementen (z.B. ein Rasterplot mit tausenden von
|
Abbildungen mit sehr vielen graphischen Elementen (z.B. ein
|
||||||
Aktionspotentialen) ist als Rastergraphik allerdings deutlich
|
Rasterplot mit tausenden von Aktionspotentialen) ist als
|
||||||
schneller und speichereffizienter.
|
Rastergraphik allerdings deutlich schneller und speichereffizienter.
|
||||||
\end{ibox}
|
\end{ibox}
|
||||||
|
|
||||||
|
|
||||||
\subsection{Fazit}
|
\section{Fazit}
|
||||||
|
|
||||||
Ein guter Datenplot stellt die Daten m\"oglichst vollst\"andig und
|
Ein guter Datenplot stellt die Daten m\"oglichst vollst\"andig und
|
||||||
n\"uchtern dar. Verzerrungen durch perspektivische Darstellungen,
|
n\"uchtern dar. Verzerrungen durch perspektivische Darstellungen,
|
||||||
Achs- oder Symbolskalierungen sollten vermieden werden. Wenn man
|
Achs- oder Symbolskalierungen sollten vermieden werden.
|
||||||
verschiedene Linienplots in einen Graphen plottet, sollte man neben
|
|
||||||
der Farbe auch den Linienstil (durchgezogen, gepunktet, gestrichelt,
|
Wenn verschiedene Linienplots in einen Graphen geplottet werden,
|
||||||
etc.) variieren um auch im Schwarz-Wei{\ss}-Druck eine Unterscheidung zu
|
sollte neben der Farbe auch der Linienstil (durchgezogen, gepunktet,
|
||||||
erm\"oglichen. Bei der Farbwahl sollte man auf Kombinationen aus Rot
|
gestrichelt, etc.) variiert werden, um auch im Schwarz-Wei{\ss}-Druck
|
||||||
und Gr\"un verzichten, da sie f\"ur einen nicht unwesentlichen Teil
|
eine Unterscheidung zu erm\"oglichen.
|
||||||
der m\"annlichen Bev\"olkerung nicht unterscheidbar sind. Man achte
|
|
||||||
insbesondere auf:
|
Bei der Farbwahl sollte auf
|
||||||
\begin{enumerate}
|
Kombinationen aus Rot und Gr\"un verzichtet werden, da sie f\"ur einen nicht
|
||||||
|
unwesentlichen Teil der m\"annlichen Bev\"olkerung nicht
|
||||||
|
unterscheidbar sind.
|
||||||
|
|
||||||
|
Achte bei der Erstellung von Plots insbesondere auf:
|
||||||
|
\begin{itemize}
|
||||||
\item Klarheit.
|
\item Klarheit.
|
||||||
\item Vollstaendige Beschriftung.
|
\item Vollst\"andige und lesbare Beschriftung.
|
||||||
\item Deutliche Unterscheidbarkeit von Kurven.
|
\item Deutliche Unterscheidbarkeit von Kurven.
|
||||||
\item Keine suggestive Darstellung.
|
\item Keine suggestive Darstellung.
|
||||||
\item Ausgewogenheit von Linienst\"arken Schrift- und Plotgr\"o{\ss}e.
|
\item Ausgewogenheit von Linienst\"arken, Schrift- und Plotgr\"o{\ss}e.
|
||||||
\item Fehlerbalken, wenn sie angebracht sind.
|
\item Fehlerbalken, wenn sie angebracht sind.
|
||||||
\end{enumerate}
|
\end{itemize}
|
||||||
|
|
||||||
|
@ -11,9 +11,9 @@
|
|||||||
\maketitle
|
\maketitle
|
||||||
|
|
||||||
\tableofcontents
|
\tableofcontents
|
||||||
%\listoffigures
|
\listoffigures
|
||||||
%\lstlistoflistings
|
\lstlistoflistings
|
||||||
%\listofiboxfs
|
\listofiboxfs
|
||||||
|
|
||||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||||
\part{Grundlagen des Programmierens}
|
\part{Grundlagen des Programmierens}
|
||||||
|
Reference in New Issue
Block a user