Merge branch 'master' of raven.am28.uni-tuebingen.de:scientificComputing
Conflicts: programming/lecture/programming.tex
This commit is contained in:
BIN
plotting/lecture/images/plot_editor.png
Normal file
BIN
plotting/lecture/images/plot_editor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 44 KiB |
BIN
plotting/lecture/images/property_editor.png
Normal file
BIN
plotting/lecture/images/property_editor.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 42 KiB |
@@ -1,6 +1,6 @@
|
||||
\chapter{\tr{Data plotting}{Graphische Darstellung von Daten}}
|
||||
|
||||
\section{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
|
||||
@@ -57,7 +57,7 @@ Beispiele (\url{https://en.wikipedia.org/wiki/Misleading_graph}).
|
||||
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
|
||||
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}).
|
||||
@@ -119,4 +119,134 @@ vorgehen um Unterschiede nicht zu \"uberproportional zu verzerren
|
||||
|
||||
\newpage
|
||||
|
||||
\subsection{Plottingsystem in \matlab{}}
|
||||
\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}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user