moving and some work
This commit is contained in:
@@ -1,198 +0,0 @@
|
||||
import numpy as np
|
||||
import matplotlib.pyplot as plt
|
||||
import scipy.io as spio
|
||||
import scipy as sp
|
||||
import seaborn as sb
|
||||
from IPython import embed
|
||||
sb.set_context("paper")
|
||||
|
||||
|
||||
def set_axis_fontsize(axis, label_size, tick_label_size=None, legend_size=None):
|
||||
"""
|
||||
Sets axis, tick label and legend font sizes to the desired size.
|
||||
|
||||
:param axis: the axes object
|
||||
:param label_size: the size of the axis label
|
||||
:param tick_label_size: the size of the tick labels. If None, lable_size is used
|
||||
:param legend_size: the size of the font used in the legend.If None, the label_size is used.
|
||||
|
||||
"""
|
||||
if not tick_label_size:
|
||||
tick_label_size = label_size
|
||||
if not legend_size:
|
||||
legend_size = label_size
|
||||
axis.xaxis.get_label().set_fontsize(label_size)
|
||||
axis.yaxis.get_label().set_fontsize(label_size)
|
||||
for tick in axis.xaxis.get_major_ticks() + axis.yaxis.get_major_ticks():
|
||||
tick.label.set_fontsize(tick_label_size)
|
||||
|
||||
l = axis.get_legend()
|
||||
if l:
|
||||
for t in l.get_texts():
|
||||
t.set_fontsize(legend_size)
|
||||
|
||||
|
||||
def get_instantaneous_rate(times, max_t=30., dt=1e-4):
|
||||
time = np.arange(0., max_t, dt)
|
||||
indices = np.asarray(times / dt, dtype=int)
|
||||
intervals = np.diff(np.hstack(([0], times)))
|
||||
inst_rate = np.zeros(time.shape)
|
||||
|
||||
for i, index in enumerate(indices[1:]):
|
||||
inst_rate[indices[i-1]:indices[i]] = 1/intervals[i]
|
||||
return time, inst_rate
|
||||
|
||||
|
||||
def plot_isi_rate(spike_times, max_t=30, dt=1e-4):
|
||||
times = np.squeeze(spike_times[0][0])[:50000]
|
||||
time, rate = get_instantaneous_rate(times, max_t=50000*dt)
|
||||
|
||||
rates = np.zeros((len(rate), len(spike_times)))
|
||||
for i in range(len(spike_times)):
|
||||
_, rates[:, i] = get_instantaneous_rate(np.squeeze(spike_times[i][0])[:50000],
|
||||
max_t=50000*dt)
|
||||
avg_rate = np.mean(rates, axis=1)
|
||||
rate_std = np.std(rates, axis=1)
|
||||
|
||||
fig = plt.figure()
|
||||
ax1 = fig.add_subplot(311)
|
||||
ax2 = fig.add_subplot(312)
|
||||
ax3 = fig.add_subplot(313)
|
||||
|
||||
ax1.vlines(times[times < (50000*dt)], ymin=0, ymax=1, color="dodgerblue", lw=1.5)
|
||||
ax1.set_ylabel("skpikes", fontsize=12)
|
||||
set_axis_fontsize(ax1, 12)
|
||||
|
||||
ax2.plot(time, rate, label="instantaneous rate, trial 1")
|
||||
ax2.set_ylabel("firing rate [Hz]", fontsize=12)
|
||||
ax2.legend(fontsize=12)
|
||||
set_axis_fontsize(ax2, 12)
|
||||
|
||||
ax3.fill_between(time, avg_rate+rate_std, avg_rate-rate_std, color="dodgerblue",
|
||||
alpha=0.5, label="standard deviation")
|
||||
ax3.plot(time, avg_rate, label="average rate")
|
||||
ax3.set_xlabel("times [s]", fontsize=12)
|
||||
ax3.set_ylabel("firing rate [Hz]", fontsize=12)
|
||||
ax3.legend(fontsize=12)
|
||||
ax3.set_ylim([0, 450])
|
||||
set_axis_fontsize(ax3, 12)
|
||||
|
||||
fig.set_size_inches(15, 10)
|
||||
fig.subplots_adjust(left=0.1, bottom=0.125, top=0.95, right=0.95)
|
||||
fig.set_facecolor("white")
|
||||
fig.savefig("../lectures/images/instantaneous_rate.png")
|
||||
plt.close()
|
||||
|
||||
|
||||
def get_binned_rate(times, bin_width=0.05, max_t=30., dt=1e-4):
|
||||
time = np.arange(0., max_t, dt)
|
||||
bins = np.arange(0., max_t, bin_width)
|
||||
bin_indices = bins / dt
|
||||
hist, _ = sp.histogram(times, bins)
|
||||
rate = np.zeros(time.shape)
|
||||
|
||||
for i, b in enumerate(bin_indices[1:]):
|
||||
rate[bin_indices[i-1]:b] = hist[i-1]/bin_width
|
||||
return time, rate
|
||||
|
||||
|
||||
def plot_bin_rate(spike_times, bin_width, max_t=30, dt=1e-4):
|
||||
times = np.squeeze(spike_times[0][0])
|
||||
time, rate = get_binned_rate(times)
|
||||
rates = np.zeros((len(rate), len(spike_times)))
|
||||
for i in range(len(spike_times)):
|
||||
_, rates[:, i] = get_binned_rate(np.squeeze(spike_times[i][0]))
|
||||
avg_rate = np.mean(rates, axis=1)
|
||||
rate_std = np.std(rates, axis=1)
|
||||
|
||||
fig = plt.figure()
|
||||
ax1 = fig.add_subplot(311)
|
||||
ax2 = fig.add_subplot(312)
|
||||
ax3 = fig.add_subplot(313)
|
||||
|
||||
ax1.vlines(times[times < (100000*dt)], ymin=0, ymax=1, color="dodgerblue", lw=1.5)
|
||||
ax1.set_ylabel("skpikes", fontsize=12)
|
||||
ax1.set_xlim([0, 5])
|
||||
set_axis_fontsize(ax1, 12)
|
||||
|
||||
ax2.plot(time, rate, label="binned rate, trial 1")
|
||||
ax2.set_ylabel("firing rate [Hz]", fontsize=12)
|
||||
ax2.legend(fontsize=12)
|
||||
ax2.set_xlim([0, 5])
|
||||
set_axis_fontsize(ax2, 12)
|
||||
|
||||
ax3.fill_between(time, avg_rate+rate_std, avg_rate-rate_std, color="dodgerblue",
|
||||
alpha=0.5, label="standard deviation")
|
||||
ax3.plot(time, avg_rate, label="average rate")
|
||||
ax3.set_xlabel("times [s]", fontsize=12)
|
||||
ax3.set_ylabel("firing rate [Hz]", fontsize=12)
|
||||
ax3.legend(fontsize=12)
|
||||
ax3.set_xlim([0, 5])
|
||||
ax3.set_ylim([0, 450])
|
||||
set_axis_fontsize(ax3, 12)
|
||||
|
||||
fig.set_size_inches(15, 10)
|
||||
fig.subplots_adjust(left=0.1, bottom=0.125, top=0.95, right=0.95)
|
||||
fig.set_facecolor("white")
|
||||
fig.savefig("../lectures/images/binned_rate.png")
|
||||
plt.close()
|
||||
|
||||
|
||||
def get_convolved_rate(times, sigma, max_t=30., dt=1.e-4):
|
||||
time = np.arange(0., max_t, dt)
|
||||
kernel = sp.stats.norm.pdf(np.arange(-8*sigma, 8*sigma, dt),loc=0,scale=sigma)
|
||||
indices = np.asarray(times/dt, dtype=int)
|
||||
rate = np.zeros(time.shape)
|
||||
rate[indices] = 1.;
|
||||
conv_rate = np.convolve(rate, kernel, mode="same")
|
||||
return time, conv_rate
|
||||
|
||||
|
||||
def plot_conv_rate(spike_times, sigma=0.05, max_t=30, dt=1e-4):
|
||||
times = np.squeeze(spike_times[0][0])
|
||||
time, rate = get_convolved_rate(times, sigma)
|
||||
|
||||
rates = np.zeros((len(rate), len(spike_times)))
|
||||
for i in range(len(spike_times)):
|
||||
_, rates[:, i] = get_convolved_rate(np.squeeze(spike_times[i][0]), sigma)
|
||||
avg_rate = np.mean(rates, axis=1)
|
||||
rate_std = np.std(rates, axis=1)
|
||||
|
||||
fig = plt.figure()
|
||||
ax1 = fig.add_subplot(311)
|
||||
ax2 = fig.add_subplot(312)
|
||||
ax3 = fig.add_subplot(313)
|
||||
|
||||
ax1.vlines(times[times < (100000*dt)], ymin=0, ymax=1, color="dodgerblue", lw=1.5)
|
||||
ax1.set_ylabel("skpikes", fontsize=12)
|
||||
ax1.set_xlim([0, 5])
|
||||
set_axis_fontsize(ax1, 12)
|
||||
|
||||
ax2.plot(time, rate, label="convolved rate, trial 1")
|
||||
ax2.set_ylabel("firing rate [Hz]", fontsize=12)
|
||||
ax2.legend(fontsize=12)
|
||||
ax2.set_xlim([0, 5])
|
||||
set_axis_fontsize(ax2, 12)
|
||||
|
||||
ax3.fill_between(time, avg_rate+rate_std, avg_rate-rate_std, color="dodgerblue",
|
||||
alpha=0.5, label="standard deviation")
|
||||
ax3.plot(time, avg_rate, label="average rate")
|
||||
ax3.set_xlabel("times [s]", fontsize=12)
|
||||
ax3.set_ylabel("firing rate [Hz]", fontsize=12)
|
||||
ax3.legend(fontsize=12)
|
||||
ax3.set_xlim([0, 5])
|
||||
ax3.set_ylim([0, 450])
|
||||
set_axis_fontsize(ax3, 12)
|
||||
|
||||
fig.set_size_inches(15, 10)
|
||||
fig.subplots_adjust(left=0.1, bottom=0.125, top=0.95, right=0.95)
|
||||
fig.set_facecolor("white")
|
||||
fig.savefig("../lectures/images/convolved_rate.png")
|
||||
plt.close()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
spike_times = spio.loadmat('lifoustim.mat')["spikes"]
|
||||
plot_isi_rate(spike_times)
|
||||
plot_bin_rate(spike_times, 0.05)
|
||||
plot_conv_rate(spike_times, 0.025)
|
||||
@@ -1,78 +0,0 @@
|
||||
\documentclass[12pt,a4paper,pdftex]{exam}
|
||||
|
||||
\usepackage[german]{babel}
|
||||
\usepackage{natbib}
|
||||
\usepackage{graphicx}
|
||||
\usepackage[small]{caption}
|
||||
\usepackage{sidecap}
|
||||
\usepackage{pslatex}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{amssymb}
|
||||
\setlength{\marginparwidth}{2cm}
|
||||
\usepackage[breaklinks=true,bookmarks=true,bookmarksopen=true,pdfpagemode=UseNone,pdfstartview=FitH,colorlinks=true,citecolor=blue]{hyperref}
|
||||
|
||||
%%%%% text size %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\usepackage[left=20mm,right=20mm,top=25mm,bottom=25mm]{geometry}
|
||||
\pagestyle{headandfoot} \header{{\bfseries\large \"Ubung
|
||||
}}{{\bfseries\large Peri Stimulus Time Histogram}}{{\bfseries\large 28. Oktober, 2015}}
|
||||
\firstpagefooter{Dr. Jan Grewe}{Phone: 29 74588}{Email:
|
||||
jan.grewe@uni-tuebingen.de} \runningfooter{}{\thepage}{}
|
||||
|
||||
\setlength{\baselineskip}{15pt}
|
||||
\setlength{\parindent}{0.0cm}
|
||||
\setlength{\parskip}{0.3cm}
|
||||
\renewcommand{\baselinestretch}{1.15}
|
||||
|
||||
\newcommand{\code}[1]{\texttt{#1}}
|
||||
\renewcommand{\solutiontitle}{\noindent\textbf{L\"osung:}\par\noindent}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\begin{document}
|
||||
|
||||
\vspace*{-6.5ex}
|
||||
\begin{center}
|
||||
\textbf{\Large Einf\"uhrung in die wissenschaftliche Datenverarbeitung}\\[1ex]
|
||||
{\large Jan Grewe, Jan Benda}\\[-3ex]
|
||||
Abteilung Neuroethologie \hfill --- \hfill Institut f\"ur Neurobiologie \hfill --- \hfill \includegraphics[width=0.28\textwidth]{UT_WBMW_Black_RGB} \\
|
||||
\end{center}
|
||||
|
||||
\begin{questions}
|
||||
\question Graphische Darstellung der zeitabh\"angigen Antwort eines
|
||||
Neurons. PSTH auf Basis der instantanen Feuerrate. Verwendet den Datensatz \code{}
|
||||
\begin{parts}
|
||||
\part Schreibt eine Funktion, die einen Vektor mit Spikezeiten,
|
||||
die Dauer des Trials, und die zeitliche Aufl\"osung entgegennimmt
|
||||
und die Zeitachse sowie die Feuerrate zur\"uckgiebt.
|
||||
\part Benutzt diese Funktion in einem Skript und stellt das PSTH
|
||||
eines einzelnen Trials sowie den Mittelwert \"uber alle Trials
|
||||
dar.
|
||||
\part Erweitert das Programm so, dass die Abbildung den Standards
|
||||
z.B. vom \textit{Journal of Neuroscience} entspricht
|
||||
(Schriftgr\"o{\ss}e, Abbildungsgr\"o{\ss}e).
|
||||
\part Die Abbildung sollte als pdf gespeichert werden.
|
||||
\end{parts}
|
||||
|
||||
\question Wie zuvor nur unter Verwendung der Binning Methode.
|
||||
|
||||
\question Wie zuvor nur unter Verwendung der Faltungsmethode.
|
||||
|
||||
\question Entscheidet euch f\"ur eine Varainte und erweitert das
|
||||
entsprechende Skript, sodass auch die Interspikeintervallverteilung
|
||||
und die Verteilung der Spikecounts dargestellt werden. Die
|
||||
Abbildungen sollten nat\"urlich ``publikationsreif'' sein und
|
||||
gespeichert werden.
|
||||
|
||||
\question Einige trials sind anders als die \"Ubrigen. Benutzt den
|
||||
Rasterplot um sie zu finden. Speichert alle Abbildungen in
|
||||
``publikationsreifer'' Form.
|
||||
\begin{parts}
|
||||
\part Benutzt den Rasterplot um sie zu finden.
|
||||
\part Plottet die Verteilung der Spike counts.
|
||||
\part Filtert all die trials heraus, deren spike count mehr als
|
||||
$2\sigma$ vom Mittelwert abweicht.
|
||||
\part Plottet das PSTH vor und nach dem Filtern.
|
||||
\end{parts}
|
||||
|
||||
\end{questions}
|
||||
|
||||
\end{document}
|
||||
@@ -1,5 +1,5 @@
|
||||
TEXFILES=$(wildcard *.tex)
|
||||
TEXFILES=boolean_logical_indexing.tex control_structures.tex data_structures.tex plotting_spike_trains.tex programming_basics.tex scripts_functions.tex sta_stc.tex variables_datatypes.tex vectors_matrices.tex
|
||||
TEXFILES=boolean_logical_indexing.tex control_structures.tex data_structures.tex plotting.tex programming_basics.tex scripts_functions.tex sta_stc.tex variables_datatypes.tex vectors_matrices.tex
|
||||
|
||||
PDFFILES=$(TEXFILES:.tex=.pdf)
|
||||
|
||||
|
||||
358
programming/lectures/plotting.tex
Normal file
358
programming/lectures/plotting.tex
Normal file
@@ -0,0 +1,358 @@
|
||||
\documentclass{beamer}
|
||||
\usepackage{xcolor}
|
||||
\usepackage{listings}
|
||||
\usepackage{pgf}
|
||||
%\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps,pgfshade}
|
||||
%\usepackage{multimedia}
|
||||
|
||||
\usepackage[english]{babel}
|
||||
\usepackage{movie15}
|
||||
\usepackage[latin1]{inputenc}
|
||||
\usepackage{times}
|
||||
\usepackage{amsmath}
|
||||
\usepackage{bm}
|
||||
\usepackage[T1]{fontenc}
|
||||
\usepackage[scaled=.90]{helvet}
|
||||
\usepackage{scalefnt}
|
||||
\usepackage{tikz}
|
||||
\usepackage{ textcomp }
|
||||
\usepackage{soul}
|
||||
\usepackage{hyperref}
|
||||
\definecolor{lightblue}{rgb}{.7,.7,1.}
|
||||
\definecolor{mygreen}{rgb}{0,1.,0}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\mode<presentation>
|
||||
{
|
||||
\usetheme{Singapore}
|
||||
\setbeamercovered{opaque}
|
||||
\usecolortheme{tuebingen}
|
||||
\setbeamertemplate{navigation symbols}{}
|
||||
\usefonttheme{default}
|
||||
\useoutertheme{infolines}
|
||||
% \useoutertheme{miniframes}
|
||||
}
|
||||
|
||||
\AtBeginSection[]
|
||||
{
|
||||
\begin{frame}<beamer>
|
||||
\begin{center}
|
||||
\Huge \insertsectionhead
|
||||
\end{center}
|
||||
% \frametitle{\insertsectionhead}
|
||||
% \tableofcontents[currentsection,hideothersubsections]
|
||||
\end{frame}
|
||||
}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5
|
||||
|
||||
\setbeamertemplate{blocks}[rounded][shadow=true]
|
||||
|
||||
\title[]{Scientific Computing -- Grundlagen der Programmierung }
|
||||
\author[]{Jan Grewe\\Abteilung f\"ur Neuroethologie\\
|
||||
Universit\"at T\"ubingen}
|
||||
|
||||
\institute[Wissenschaftliche Datenverarbeitung]{}
|
||||
\date{12.10.2015 - 06.11.2015}
|
||||
%\logo{\pgfuseimage{../../resources/UT_BM_Rot_RGB.pdf}}
|
||||
|
||||
\subject{Einf\"uhrung in die wissenschaftliche Datenverarbeitung}
|
||||
\vspace{1em}
|
||||
\titlegraphic{
|
||||
\includegraphics[width=0.5\linewidth]{../../resources/UT_WBMW_Rot_RGB}
|
||||
}
|
||||
%%%%%%%%%% configuration for code
|
||||
\lstset{
|
||||
basicstyle=\ttfamily,
|
||||
numbers=left,
|
||||
showstringspaces=false,
|
||||
language=Matlab,
|
||||
commentstyle=\itshape\color{darkgray},
|
||||
keywordstyle=\color{blue},
|
||||
stringstyle=\color{green},
|
||||
backgroundcolor=\color{blue!10},
|
||||
breaklines=true,
|
||||
breakautoindent=true,
|
||||
columns=flexible,
|
||||
frame=single,
|
||||
captionpos=b,
|
||||
xleftmargin=1em,
|
||||
xrightmargin=1em,
|
||||
aboveskip=10pt
|
||||
}
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\newcommand{\mycite}[1]{
|
||||
\begin{flushright}
|
||||
\tiny \color{black!80} #1
|
||||
\end{flushright}
|
||||
}
|
||||
|
||||
\newcommand{\code}[1]{\texttt{#1}}
|
||||
|
||||
\input{../../latex/environments.tex}
|
||||
\makeatother
|
||||
|
||||
\begin{document}
|
||||
|
||||
\begin{frame}[plain]
|
||||
\frametitle{}
|
||||
\vspace{-1cm}
|
||||
\titlepage % erzeugt Titelseite
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Grundlagen der Programmierung}
|
||||
\frametitle{Inhalt}
|
||||
\begin{enumerate}
|
||||
\item Graphische Darstellung von Daten
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}[plain]
|
||||
\huge{1. Graphische Darstellung von Daten}\pause
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.9\columnwidth]{images/convincing}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Was soll ein Datenplot erreichen?}
|
||||
|
||||
\begin{itemize}
|
||||
\item Ist eine m\"oglichst neutrale Darstellung der Daten.
|
||||
\item Soll dem Leser die Daten greifbar machen und die Aussagen der
|
||||
Analyse darstellen.
|
||||
\item Erlaubt dem Leser die gezeigten Effekte selbst zu beguachten
|
||||
und zu validieren.
|
||||
\item Muss vollst\"andig annotiert sein.
|
||||
\item Folgt dem Prinzip der \textbf{ink minimization}. (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 )
|
||||
\end{itemize}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Was sollte vermieden werden?}
|
||||
|
||||
\begin{itemize}
|
||||
\item Suggestive oder gar fehlleitende Darstellung.
|
||||
\item Ablenkung durch unruhige oder \"uberm\"a{\ss}ige Effekte.
|
||||
\item Comicartige Effekte...
|
||||
\end{itemize}\pause
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.35\columnwidth]{images/one_d_problem_c}
|
||||
\end{figure}\pause
|
||||
... aus{\ss}er sie werden rein zur Illustration benutzt ohne einen
|
||||
Anspruch auf Richtigkeit zu erheben.
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Suboptimale Beispiele}
|
||||
\only <1> {
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.5\columnwidth]{images/nobelbad}
|
||||
\end{figure}
|
||||
\vspace{0.25cm}
|
||||
Aus Hafting et al., Nature, 2005
|
||||
}
|
||||
\only <2> {
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.7\columnwidth]{images/misleading_pie}
|
||||
\end{figure}
|
||||
\vspace{0.5cm}
|
||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}
|
||||
}
|
||||
\only <3> {
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.7\columnwidth]{images/sample_pie}
|
||||
\end{figure}
|
||||
\vspace{0.5cm}
|
||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}
|
||||
}
|
||||
\only <4> {
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.3\columnwidth]{images/badbarright}
|
||||
\end{figure}
|
||||
\vspace{0.5cm}
|
||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}
|
||||
}
|
||||
\only <5> {
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.3\columnwidth]{images/badbarleft}
|
||||
\end{figure}
|
||||
\vspace{0.5cm}
|
||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}
|
||||
}
|
||||
\only <6> {
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.8\columnwidth]{images/badbarplot}
|
||||
\end{figure}
|
||||
\vspace{0.5cm}
|
||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}
|
||||
}
|
||||
\only <7> {
|
||||
Wahl der Zeichenfl\"ache kann den visuellen Eindruck beeinflu{\ss}en.
|
||||
\begin{columns}
|
||||
\begin{column}{4.cm}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.7\columnwidth]{images/line_graph1}
|
||||
\end{figure}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{4.cm}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.7\columnwidth]{images/line_graph1_3}
|
||||
\end{figure}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{4.cm}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.7\columnwidth]{images/line_graph1_4}
|
||||
\end{figure}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\vspace{0.5cm}
|
||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}
|
||||
}
|
||||
\only <8> {
|
||||
Vorsicht bei der Skalierung von Symbolen!
|
||||
\begin{columns}
|
||||
\begin{column}{4.cm}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.7\columnwidth]{images/improperly_scaled_graph}
|
||||
\end{figure}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{4.cm}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.7\columnwidth]{images/properly_scaled_graph}
|
||||
\end{figure}
|
||||
\end{column}
|
||||
|
||||
\begin{column}{4.cm}
|
||||
\begin{figure}
|
||||
\includegraphics[width=0.7\columnwidth]{images/comparison_properly_improperly_graph}
|
||||
\end{figure}
|
||||
\end{column}
|
||||
\end{columns}
|
||||
\vspace{0.5cm}
|
||||
\url{https://en.wikipedia.org/wiki/Misleading_graph}
|
||||
}
|
||||
\end{frame}
|
||||
|
||||
\begin{frame}[fragile]
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Plotting Interfaces in Matlab}
|
||||
Es gibt zwei Wege Graphen zu bearbeiten:
|
||||
\begin{enumerate}
|
||||
\item Interaktiv \"uber das \textit{graphische User Interface}\pause
|
||||
\item Die Kommandozeile bzw. in Skripten und Funktionen.\pause
|
||||
\end{enumerate}
|
||||
Beides hat seine Berechtigung und seine eigenen Vor- und Nachteile. Welche?
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Ver\"anderung des Graphen \"uber die Kommandozeile}
|
||||
\begin{itemize}
|
||||
\item Erstellt ein Skript, dass einen Plot erstellt.
|
||||
\item Dieser soll zwei Sinus unterschiedlicher Frequenz darstellen.
|
||||
\end{itemize}
|
||||
Wir werden jetzt die Kommandozeil bzw. das Skript verbessern um den
|
||||
Plot ``sch\"oner'' zu machen.
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame}
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Ver\"anderung des Graphen \"uber die Kommandozeile}
|
||||
\begin{enumerate}
|
||||
\item Einstellungen der Linienplots:
|
||||
\begin{itemize}
|
||||
\item St\"arke und Farbe.
|
||||
\item Linienstil, Marker.
|
||||
\end{itemize}\pause
|
||||
\item Achsbeschriftung:
|
||||
\begin{itemize}
|
||||
\item \code{xlabel}, \code{ylabel}.
|
||||
\item Schriftart und Gr\"o{\ss}e.
|
||||
\end{itemize}\pause
|
||||
\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}\pause
|
||||
\item Setzen von globalen Parametern:
|
||||
\begin{itemize}
|
||||
\item Einstellung der Papiergr\"o{\ss}e und plzieren der
|
||||
Zeichenfl\"ache.
|
||||
\item Box oder nicht?
|
||||
\item Speichern der Abbildung als pdf.
|
||||
\end{itemize}
|
||||
\end{enumerate}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame} [fragile]
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Ver\"andern von Eigenschaften \"uber die Kommandozeile}
|
||||
\vspace{-0.75em}
|
||||
\scriptsize
|
||||
\begin{lstlisting}
|
||||
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}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame} [fragile]
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Ver\"andern von Eigenschaften \"uber die Kommandozeile}
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=0.75\columnwidth]{./images/spike_detection}
|
||||
\end{figure}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame} [fragile]
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Welche Art Plot wof\"ur?}
|
||||
\url{http://www.mathworks.de/discovery/gallery.html}
|
||||
\end{frame}
|
||||
|
||||
|
||||
\begin{frame} [fragile]
|
||||
\frametitle{Graphische Darstellung von Daten}
|
||||
\framesubtitle{Was macht einen guten Abbildung aus?}
|
||||
\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}
|
||||
\end{frame}
|
||||
|
||||
\end{document}
|
||||
Reference in New Issue
Block a user