worked on the plotting chapter

This commit is contained in:
Jan Benda 2015-11-14 00:02:06 +01:00
parent de0aa2735b
commit 755f45b487
4 changed files with 254 additions and 188 deletions

View File

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

View 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();

View File

@ -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 Datenplots. \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}

View File

@ -11,9 +11,9 @@
\maketitle \maketitle
\tableofcontents \tableofcontents
%\listoffigures \listoffigures
%\lstlistoflistings \lstlistoflistings
%\listofiboxfs \listofiboxfs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\part{Grundlagen des Programmierens} \part{Grundlagen des Programmierens}