import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
%config InlineBackend.figure_format='retina' # for Mac retina displays
import seaborn as sns
dat = sns.load_dataset('fmri')
print(dat.shape)
dat.head(10)
print(dat.subject.unique())
print(dat.region.unique())
tab = dat.groupby(['region', 'subject']).agg(
{'signal': ['mean', 'std']})
tab = tab.reset_index()
tab['SNR'] = tab['signal']['mean'].abs()/tab['signal']['std']
tab
tab.sort_values('SNR', ascending=False)
Matplotlib:
frontal = dat[(dat.region == 'frontal') & (dat.event == 'stim')]
frontal = frontal.sort_values(['subject', 'timepoint'])
frontal.head(10)
for sub in frontal.subject.unique():
this_dat = frontal[frontal.subject == sub]
plt.plot(this_dat.timepoint, this_dat.signal, label=sub)
Seaborn
sns.lineplot(data=frontal, x='timepoint', y='signal', hue='subject')
ax = sns.lineplot(data=frontal, x='timepoint', y='signal', hue='subject')
plt.xlabel('time')
plt.ylabel('BOLD signal')
plt.title('Frontal stim response')
sns.move_legend(ax, "upper left", bbox_to_anchor=(1, 1))
plt.axhline(y=0.0, color='gray', zorder=-3, alpha=0.5)