本案例主要介绍epoched数据的可视化。

这里介绍的所有函数基本上都是高级matplotlib函数,所有方法均返回matplotlib图形实例的句柄。

mne.Epochs.plot()提供了一个交互式浏览器,当与关键字block = True结合使用时,允许手动拒绝。这将阻止脚本执行,直到关闭浏览器窗口。

# 加载工具包
import os.path as op
import mne
import matplotlib.pyplot as plt

加载数据

"""
加载数据,如果本地无该数据,
则从网络中下载
"""
data_path = op.join(mne.datasets.sample.data_path(), 'MEG', 'sample')raw = mne.io.read_raw_fif(op.join(data_path, 'sample_audvis_filt-0-40_raw.fif'), 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=.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)
319 matching events found
No baseline correction applied
Not setting metadata
0 projection items activated
0 bad epochs dropped

这里还可以通过计算全局场功率(或其他聚合方法)来概述所有通道。但是,以这种方式组合多个通道类型(例如MEG和EEG)是不明智的,因此,如果未指定特定的通道选择,默认情况下plot_image()方法将为每个通道类型生成单独的图形。

epochs.plot_image(combine='gfp', sigma=2., cmap="YlGnBu_r")

这里还可以使用一些函数来绘制按通道排列成通道阵列形状的信息。

图像绘制时默认情况下使用自动缩放,但是有噪声的通道和不同的通道类型会导致缩放有点小。

epochs.plot_topo_image(vmin=-250,vmax=250, title='ERF images',sigma=2.,fig_facecolor='w',font_color='k')

不用于商业行为,转载请联系后台

若有侵权,请后台留言,管理员即时删侵!

更多阅读

EEG公开数据集汇总

手部的运动区域也与整个身体相连

他们想把广告植入你的梦境

EEG伪影详解和过滤工具的汇总(二)

EEG伪影类型详解和过滤工具的汇总(一)

MNE中数据结构Epoch及其创建方法

机器学习算法随机森林判断睡眠类型

利用脑机接口从鸟的脑电波中重现鸟唱歌声

投稿通道

如何让你的工作让更多人知晓和受益?

脑机接口社区就是这样一个连接学界、

企业界和爱好者的平台渠道。

社区鼓励高校实验室、企业或个人在我们平台上分享优质内容。

稿件要求

稿件系个人原创作品,若已在其他平台发表,请明确标注。

稿件一经录取,便提供稿费!

投稿通道

微信扫码,备注:投稿+姓名+单位

微信交流群,请扫码上方微信

(备注:姓名+单位+专业/领域行业)

QQ交流群:913607986

你的每一次在看,我都很在意!

脑电分析系列[MNE-Python-15]| Epochs数据可视化相关推荐

  1. 脑电分析系列[MNE-Python-5]| Python机器学习算法随机森林判断睡眠类型

    案例介绍 本案例通过对多导睡眠图(Polysomnography,PSG)数据进行睡眠阶段的分类来判断睡眠类型. 训练:对Alice的睡眠数据进行训练: 测试:利用训练结果对Bob的睡眠数据进行测试, ...

  2. 脑电分析系列[MNE-Python-21]| Python协方差矩阵处理脑电数据

    今天主要介绍一下MNE中如何用协方差矩阵来处理脑电数据的. MNE中的许多方法,包括源估计和一些分类算法,都需要根据记录进行协方差估计. 在本教程中,我们将介绍传感器协方差计算的基础知识,并构建一个噪 ...

  3. 脑电分析系列[MNE-Python-6]| Python读取.set文件和.locs文件

    本案例主要介绍如何读取eeglab示例文件.set以及.locs文件. .set文件记录的是采集的信息,主要内容包括通道数,事件数,开始时间与结束时间等. .locs文件记录的是电极位置信息. 知识点 ...

  4. 脑电分析系列[MNE-Python-2]| MNE中数据结构Raw及其用法简介(更新)

    Raw对象主要用来存储连续型数据,核心数据为n_channels和times,也包含Info对象. 下面可以通过几个案例来说明Raw对象和相关用法. Raw结构查看: # 引入python库 impo ...

  5. 脑电分析系列 | MNE-Python汇总

    1 脑电分析系列MNE-Python教程 [MNE-1]| MNE-Python详细安装与使用(更新) [MNE-2]| MNE中数据结构Raw及其用法简介(更新) [MNE-3]| MNE中数据结构 ...

  6. 脑电分析系列[MNE-Python-19]| 可视化Evoked数据

    在前面我们介绍过Evoked的数据结构以及如何创建Evoked对象: 脑电分析系列[MNE-Python-4]| MNE中数据结构Evoked及其对象创建 Evoked potential(EP)诱发 ...

  7. 脑电分析工具MNE教程

    资料来源:脑电分析系列 | MNE-Python汇总 目录 1.安装与使用 2.数据结构Raw 3.Epoch 4.Evoked 5.案例 (1)导入工具库 (2)加载数据 (3)测试数据 (4)提取 ...

  8. 脑电分析系列[MNE-Python-11]| 信号空间投影SSP 应用

    信号空间投影(SSP) 在前面一篇分享(脑电分析系列[MNE-Python-10]| 信号空间投影SSP数学原理)中提到,投影矩阵将根据您试图投射出的噪声种类而变化.信号空间投影(SSP)是一种通过比 ...

  9. 脑电分析系列 | eeglab汇总

    1 脑电分析系列eeglab教程 eeglab教程系列(1)-安装教程 eeglab教程系列(2)-加载.显示数据 eeglab教程系列(3)-绘制脑电头皮图 eeglab教程系列(4)-绘制通道光谱 ...

  10. 脑电分析系列[MNE-Python-2]| MNE中数据结构Epoch及其创建方法

    Epoch概念简介 相信很多人第一次接触epoch时,都会有疑惑,这个词在EEG中到底指的是什么. 下面将详细说明一下. 从连续的脑电图信号中提取一些特定时间窗口的信号,这些时间窗口可以称作为epoc ...

最新文章

  1. 网络设备Web登录检测工具device-phamer
  2. JQuery 总结(3) jQuery 各种事件
  3. 比特币全节点(bitcoind) eth 全节点
  4. iOS - Base64转图片图片转Base64
  5. vim常用操作技巧与配置
  6. 玩转Git三剑客01:Git基础
  7. linux gcc百度经验,详解Linux安装GCC方法
  8. winform 企业ERP管理系统源码 c# C/S
  9. 试题管理小能手,免费下载单机软件-题库管家
  10. 关于OPENGL纹理
  11. SpringCloud-服务网关
  12. js导出WORD设置分页
  13. PointFusion: Deep Sensor Fusion for 3D Bounding Box Estimation
  14. 计算机科学与探索期刊审稿周期,计算机科学与探索杂志
  15. 写给初中级前端的高级进阶指南(万字长文,建议收藏)
  16. 戴尔电脑恢复系统后,D盘被加密Bitlocker,要求输入48位密钥,才能打开D盘---解决过程
  17. oracle数据库表excel文件位置,“如何将excel表格数据导入到oracle数据库对应的表中?“数据库文件导入excel表格数据库中...
  18. 从大苏菲TL-WDR8600退货降级至腾达AC9的决断
  19. graph embedding 论文及源码阅读 deepwalk line node2vec bine
  20. 基于ssm jsp超市在线销售平台的设计与实现

热门文章

  1. IOS APP 国际化 程序内切换语言实现 不重新启动系统(支持项目中stroyboard 、xib 混用。完美解决方案)
  2. 解决teamviewer试用期到期的方法
  3. 什么是TypeScript?为什么我要用它代替JavaScript? [关闭]
  4. 遍历JavaScript中的数组
  5. 如何测试一个空的JavaScript对象?
  6. Yii实现Password Repeat Validate Rule
  7. 数据分析师常用的十种数据分析思路,你都知道吗?
  8. k8s 关键字以及管理流程。
  9. 深度学习训练,选择P100就对了
  10. 全闪存存储时代 NVMe到底是什么?