\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} \titlecaption{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} \titlecaption{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} \titlecaption{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} \titlecaption{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} \titlecaption{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}