253 lines
11 KiB
TeX
253 lines
11 KiB
TeX
\chapter{\tr{Data plotting}{Graphische Darstellung von Daten}}
|
|
|
|
\section{Does and Don'ts bei der Graphische Darstellung von Daten}
|
|
|
|
Die ad\"aquate Darstellung wissenschaftlicher Daten darf man durchaus
|
|
zu den notwendigen Kernkompetenzen z\"ahlen. Wir brauchen sie um
|
|
unsere Daten optimal darstellen zu k\"onnen und unsere Aussagen zu
|
|
unterstreichen.
|
|
|
|
\begin{figure}[hb!]
|
|
\includegraphics[width=0.9\columnwidth]{convincing}
|
|
\caption{Die Folgen schlecht annotierter
|
|
Plots. \url{www.xkcd.com}} \label{xkcdplotting}
|
|
\end{figure}
|
|
|
|
\subsection{Was soll ein Plot leisten?}
|
|
Graphen sollen dem geneigten Leser wissenschaftlicher Arbeiten
|
|
erm\"oglichen die Daten zu erfassen und die beschriebenen Effekte zu
|
|
begutachen, zu hinterfragen und zu validieren. Eine der obersten
|
|
Regeln ist die vollst\"andige Annotation von Plots
|
|
(Abbildung \ref{xkcdplotting}). Eine weiteres Prinzip, an das man sich halten
|
|
sollte ist die \textbf{ink minimization}. Es besagt, dass das
|
|
Verh\"altnis aus Tinte, die f\"ur die Darstellung der Daten gebraucht
|
|
wird und der Menge Tinte, die f\"ur die Graphik ben\"otigt wird sollte
|
|
m\"oglichst gro{\ss} sein. Mit anderen Worten \"uberfl\"ussiger
|
|
Ausschm\"uckungen sollten sich in Datenplots nur selten finden
|
|
lassen. Eine Ausnahme kann vielleicht gemacht werden, wenn der Plot z.B
|
|
bei einer Pr\"asentation genutzt wird.
|
|
|
|
\subsection{Dinge, die vermieden werden sollten.}
|
|
|
|
Bei der Darstellung wissenschaftlicher Daten sollte drauf geachtet
|
|
werden suggestive oder gar fehlleitende Darstellung zu vermeiden.
|
|
Ablenkung durch \"uberm\"a{\ss}ige Effekte lassen eine Plot unruhig
|
|
und unseri\"os wirken. Comicartige Effekte wie z.B. in Abbildung
|
|
\ref{comicexamplefig} sind in der Regel nicht zul\"assig. Ausnahme ist
|
|
hier allerdings der Einsatz im didaktischen Kontext wo es um die
|
|
Illustration (z.B. einer Methode) geht und keinen Anspruch auf
|
|
Korrektheit besteht.
|
|
|
|
\begin{figure}
|
|
\includegraphics[width=0.35\columnwidth]{images/one_d_problem_c}
|
|
\caption{\textbf{Comicartige Darstellung.} Ist f\"ur die Darstellung
|
|
wissenschaftlicher Daten nicht geeignet. }\label{comicexamplefig}
|
|
\end{figure}
|
|
|
|
\subsection{Beispiele suggestiver oder fehlleitender Darstellungen}
|
|
Im folgenden werden einige Beispiele fehlleitender oder suggestiver
|
|
Darstellungen angesprochen. Einiger dieser Effekte sind deutlich
|
|
\"uberzeichnet die beschiebenen Tricks werden, etwas dezenter,
|
|
allerdings mit voller Absicht eingesetzt um die Wahrnehmung in die
|
|
gewollte Richtung zu beeinflussen. Auf Wikipedia gibt es weitere
|
|
Beispiele (\url{https://en.wikipedia.org/wiki/Misleading_graph}).
|
|
|
|
\paragraph{Fehlleitende Darstellung}
|
|
|
|
Man kann durch graphische Tricks wie Perspektive (Abbildung
|
|
\ref{misleadingpiefig}) oder auch gezielte Achsenskalierungen
|
|
(Abbildung \ref{misleadingscalingfig}) den Eindruck des Betrachters
|
|
steuern. Insbesondere wenn die Gr\"o{\ss}e von Symbolen zur
|
|
Darstellung einer Quantit\"at eingesetzt werden, muss man mit Vorsicht
|
|
vorgehen um Unterschiede nicht zu \"uberproportional zu verzerren
|
|
(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}
|
|
\caption{\textbf{Perspektivische Verzerrungen beeinlfu{\ss}t die
|
|
Gr\"o{\ss}enwahrnehmung.} Durch die geeignete Wahl der
|
|
Perspektive erscheint das hervorgehobene Segment (C) des
|
|
Tortendiagramms als mindestens gleichwertig zum Segment A. Die
|
|
2-dimensionale Darstellung rechts macht deutlich, dass die
|
|
scheinbare Gleichwertigkeit der Segmente A und C eine reine
|
|
Illusion ist. Quelle:
|
|
\url{https://en.wikipedia.org/wiki/Misleading_graph}}\label{misleadingpiefig}
|
|
\end{figure}
|
|
|
|
\begin{figure}
|
|
\begin{minipage}[t]{0.3\textwidth}
|
|
\includegraphics[width=\textwidth]{images/line_graph1}
|
|
\end{minipage}
|
|
\begin{minipage}[t]{0.3\textwidth}
|
|
\includegraphics[width=\textwidth]{images/line_graph1_3}
|
|
\end{minipage}
|
|
\begin{minipage}[t]{0.3\textwidth}
|
|
\includegraphics[width=\textwidth]{images/line_graph1_4}
|
|
\end{minipage}
|
|
\caption{\textbf{Wahl der Zeichenfl\"ache kann den visuellen
|
|
Eindruck beeinflu{\ss}en.} Alle drei Plots zeigen die gleichen
|
|
Daten allein die Skalierung der Zeichenfl\"ache unterscheidet sich
|
|
und beeinflusst, wie stark der Zusammenhang zwischen den
|
|
Gr\"o{\ss}en auf der x- und y-Achse wahrgenommen wird. Quelle:
|
|
\url{https://en.wikipedia.org/wiki/Misleading_graph}}\label{misleadingscalingfig}
|
|
\end{figure}
|
|
|
|
\begin{figure}
|
|
\begin{minipage}[t]{0.3\textwidth}
|
|
\includegraphics[width=0.8\textwidth]{images/improperly_scaled_graph}
|
|
\end{minipage}
|
|
\begin{minipage}[t]{0.3\textwidth}
|
|
\includegraphics[width=0.8\textwidth]{images/comparison_properly_improperly_graph}
|
|
\end{minipage}
|
|
\begin{minipage}[t]{0.3\textwidth}
|
|
\includegraphics[width=0.8\textwidth]{images/properly_scaled_graph}
|
|
\end{minipage}
|
|
\caption{\textbf{Die Skalierung von Symbolen kann problematisch
|
|
sein.} In diesen Graphen werden Symbole eingesetzt um zwei
|
|
Kategorien zu vergleichen. Im linken Fall wird das einzelne Symbol
|
|
proportionsgerecht skaliert. Dies scheint auf den ersten Blick
|
|
richtig f\"uhrt aber dazu, dass das Symbol der Kategorie B nicht
|
|
dreifach sondern neunfach gr\"o{\ss}er geworden ist. Der Plot
|
|
rechts zeigt die Korrekte Verwendung von Symbolen. Quelle:
|
|
\url{https://en.wikipedia.org/wiki/Misleading_graph}} \label{misleadingsymbolsfig}
|
|
\end{figure}
|
|
|
|
\newpage
|
|
|
|
\section{Plottingsystem in \matlab{}}
|
|
|
|
Plotten in \matlab{} ist zun\"achst einmal einfach. Durch den Aufruf
|
|
von \code{plot(x, y)} wird ein einfacher, schlichter Linienplot
|
|
erstellt. Zun\"achst fehlem diesem Plot jegliche Annotationen wie
|
|
Achsbeschriftungen Legenden, etc. Um diese hizuzuf\"ugen kann man zwei
|
|
Wege gehen: Das Graphische User Interface oder die
|
|
Kommandozheile. Beide haben ihre Berechtigung und Vor- und
|
|
Nachteile. W\"ahrend es bequem ist die Abbildung mit der GUI
|
|
(Abbildung \ref{ploteditorfig}) zu bearbeiten sind die erhaltenen
|
|
Ergebnisse nicht unbedingt reproduzierbar. Auch wenn eine Abbildung
|
|
korrigiert werden mus{\ss}, wird es schwierig und zeitaufwendig. Die
|
|
Nachtr\"agliche Bearbeitung der Abbildungen mit dem Graphikprogramm
|
|
seiner Wahl birgt seine eigenen Risiken. Das Bestreben sollte sein,
|
|
aus \matlab{} heraus publikationsreife Abbildungen zu erzeugen.
|
|
|
|
\begin{figure}
|
|
\begin{minipage}[t]{0.45\columnwidth}
|
|
\includegraphics[width=0.9\textwidth]{plot_editor}
|
|
\end{minipage}
|
|
\begin{minipage}[t]{0.225\columnwidth}
|
|
\includegraphics[width=0.9\textwidth]{property_editor}
|
|
\end{minipage}
|
|
\caption{\textbf{Grahischer Plot Editor.} Editor f\"ur plots. Je
|
|
nachdem welches Element des Plots ausgew\"ahlt wurde ver\"andern
|
|
sich Einstellungsm\"oglichkeiten. Weitere Eigenschaften k\"onnen
|
|
\"uber den ``Property Editor'', rechts, eingestellt werden. Der
|
|
Property Editor ist \"uber die Schaltfl\"ache ``More Properties''
|
|
erreichbar.}\label{ploteditorfig}
|
|
\end{figure}
|
|
|
|
Alle Einstellungen, die man \"uber das graphische Interface machen
|
|
kann sind auch \"uber Befehle auf der Kommandozeile m\"oglich. Das
|
|
heisst, dass die Einstellungen problemlos in eine Skript, eine
|
|
Funktion eingebaut werden k\"onnen. Dieser Ansatz hat den Vorteil,
|
|
dass man sich die M\"uhe nur ein mal machen muss. Unter den
|
|
h\"aufigsten Einstellungen sind:
|
|
\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}
|
|
|
|
Das folgende Listing \ref{niceplotlisting} zeigt das Skript, das die
|
|
Abbildung \ref{spikedetectionfig} erstellt und speichert. Abh\"angig
|
|
davon, ob man Eigenschaften der Abbildung oder der Achsen setzen will
|
|
benutzt man die \code{set} Funktion und \"ubergibt ihr ein sogenanntes
|
|
Handle der Achse oder der Abbildung und sowohl den Namen als auch den
|
|
gew\"unschten Wert der der Eigenschaft: \code{set(gcf, 'PaperUnits',
|
|
'centimeters')} setzt die Eigenschaft ``PaperUnits'' der Abbildung
|
|
auf ``centimeters'', Standard ist, nat\"urlich, ``inches''.
|
|
\code{gcf} steht f\"ur ``get current figure'' und stellt ein Handle
|
|
der aktuellen Abbildung zur Verf\"ugung. Um Eigenschaften der Achse zu
|
|
setzten benutzt man: \code{set(gca, 'linewidth', 1.5)} wobei
|
|
\code{gca} f\"ur ``get current axis'' steht. Wenn man den Namen einer
|
|
Eigenschaft nicht kennt, kann man entweder in der Hilfe nachschlagen
|
|
oder sie im ``Property Editor'' finden.
|
|
|
|
\begin{lstlisting}[caption={Skript zur Erstellung des Plots in Abbildung \ref{spikedetectionfig}.}, label=niceplotlisting]
|
|
fig = figure();
|
|
set(gcf, 'PaperUnits', 'centimeters', 'PaperSize', [11.7 9.0]);
|
|
set(gcf, 'PaperPosition',[0.0 0.0 11.7 9.0], 'Color', 'white')
|
|
hold on
|
|
plot(time, neuronal_data, 'color', [ 0.2 0.5 0.7], 'linewidth', 1.)
|
|
plot(spike_times, ones(size(spike_times))*threshold, 'ro', 'markersize', 4)
|
|
line([time(1) time(end)], [threshold threshold], 'linestyle', '--',
|
|
'linewidth', 0.75, 'color', [0.9 0.9 0.9])
|
|
ylim([0 35])
|
|
xlim([0 2.25])
|
|
box('off')
|
|
xlabel('time [s]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
|
|
ylabel('potential [mV]', 'fontname', 'MyriadPro-Regular', 'fontsize', 10)
|
|
title('pyramidal cell', 'fontname', 'MyriadPro-Regular', 'fontsize', 12)
|
|
set(gca, 'TickDir','out', 'linewidth', 1.5, 'fontname', 'MyriadPro-Regular')
|
|
saveas(fig, 'spike_detection.pdf', 'pdf')
|
|
\end{lstlisting}
|
|
|
|
\begin{figure}
|
|
\includegraphics[width=0.5\columnwidth]{./images/spike_detection}
|
|
\caption{\textbf{Annehmbarer Plot.} Dieser Plot wurde vollst\"andig
|
|
mit dem Skript in Listing \ref{niceplotlisting} erstellt und
|
|
gespeichert.}\label{spikedetectionfig}
|
|
\end{figure}
|
|
|
|
|
|
Neben den Standard Linienplots gibt es eine ganze Reihe weiterer
|
|
M\"oglichkeiten Daten zu Visualisieren. Mathworks zeigt unter
|
|
\url{http://www.mathworks.de/discovery/gallery.html} viele Beispiele
|
|
mit zugeh\"origem Code.
|
|
|
|
\subsection{Fazit}
|
|
|
|
Ein guter Datenplot stellt die Daten m\"oglichst vollst\"andig und
|
|
n\"uchtern dar. Verzerrungen durch perspektivische Darstellungen,
|
|
Achs- oder Symbolskalierungen sollten vermieden werden. Wenn man
|
|
verschiedene Linienplots in einen Graphen plottet, sollte man neben
|
|
der Farbe auch den Linienstil (durchgezogen, gepunktet, gestrichelt,
|
|
etc.) variieren um auch im Schwarzweissdruck eine Unterscheidung zu
|
|
erm\"oglichen. Bei der Farbwahl sollte man auf Kombinationen aus Rot
|
|
und Gr\"un verzichten, da sie f\"ur einen nicht unwesentlichen Teil
|
|
der m\"annlichen Bev\"olkerung nicht unterscheidbar sind. Man achte
|
|
insbesondere auf:
|
|
\begin{enumerate}
|
|
\item Klarheit.
|
|
\item Vollstaendige Beschriftung.
|
|
\item Deutliche Unterscheidbarkeit von Kurven.
|
|
\item Keine suggestive Darstellung.
|
|
\item Ausgewogenheit von Linienst\"arken Schrift- und Plotgr\"o{\ss}e.
|
|
\item Fehlerbalken, wenn sie angebracht sind.
|
|
\end{enumerate}
|
|
|