这篇文章主要介绍epoched数据的可视化
这里介绍的所有函数基本上都是高级matplotlib函数,所有方法均返回matplotlib图形实例的句柄
mne.Epochs.plot()提供了一个交互式浏览器,当与关键字block=True结合使用时,运行手动拒绝。这将阻止脚本执行,直到关闭浏览器窗口
#加载工具包
import os
import os.path as op
import mne
import matplotlib.pyplot as plt
#加载数据
'''
加载数据,如果本地无该数据,
则从网络下载
'''
sample_data_folder=r'E:\脑机接口资料\MNE-sample-data'
sample_data_raw_file=os.path.join(sample_data_folder,'MEG','sample',
'sample_audvis_filt-0-40_raw.fif')
raw=mne.io.read_raw_fif(sample_data_raw_file,verbose=False,preload=True)
#设置 event ID
event_id={'auditory/left':1,'auditory/right':2,'visual/left':3,
'visual/right':4,'smiley':5,'button':32}
events=mne.find_events(raw)
epochs=mne.Epochs(raw,events,event_id=event_id,tmin=-0.2,tmax=0.5,preload=True)
del raw
输出结果:
#绘制epochs
epochs.plot(block=True)
plt.show()
顶部的数字表示epoch的事件id,底部的数字是各个epoch的运行编号
因为这里没有进行人为的伪影校正或剔除,所以有一些epoch数据被眨眼或扫视污染。例如,epoch 1似乎被眨眼污染了(滚动到底部查看EOG通道)。单击浏览器窗口的顶部可以将这个epoch标记剔除。单击时,epoch应该变为红色。这意味着当浏览器窗口关闭时,它将被删除。
通过将events关键字传递给epochs绘图仪,可以在epoched数据上绘制事件标记。这些事件被绘制为竖线,它们遵循与mvc.viz.plot_events()相同的着色方案。由于颜色相同,事件绘图仪也可以作为epochs绘图仪事件的图例。也可以通过event_colors关键字传递自己的颜色。在这里,我们可以绘制看到笑脸和按下按钮之间的反应事件(事件32)。
在传递事件时,默认情况下,底部的epoch编号是关闭的,以避免重叠。你可以通过设置对话框通过按o键重新打开它。
#绘制events
events=mne.pick_events(events,include=[5,32])
mne.viz.plot_events(events)
# 绘制smiley的epochs
epochs['smiley'].plot(events=events)
plt.show()
为了一眼就可以看到所有的epoch,可以使用函数mne.epoch.plot_image()将各个通道绘制为图像。它可以显示信号在所有时间点上的振幅,加上激活的平均(诱发响应)。
显式地将交互式colorbar设置为on(默认情况下也是on,以使用topo绘图以外的colorbar来绘制函数)。在交互模式下,可以通过鼠标滚动和上下箭头键来缩放和改变颜色图。也可以用鼠标左右拖动颜色栏。按下空格键会重置比例
epochs.plot_image(278,
cmap='interactive',
sigma=1,
vmin=-250,vmax=250)
这里还可以通过计算全局字段功率(或其他聚合方法)来概述所有通道。但是,以这种方式组合多个通道类型(例如MEG和EEG)是不明智的,因此,如果未指定特定的通道选择,默认情况下plot_image()方法将为每个通道类型生成单独的图形。
epochs.plot_image(combine='gfp',sigma=2.0,cmap='YlGnBu_r')
这里还可以使用一些函数来绘制按通道排列成通道阵列形状的信息,图形绘制时默认情况下使用自动播放,但是有噪声的通道和不同类型的通道类型会导致缩放有点小
epochs.plot_topo_image(vmin=-250,
vmax=250,
title='ERF images',
sigma=2.,
fig_facecolor='w',
font_color='k')
以上所有内容均来自于微信公众号的学习,不积跬步无以至千里,继续加油