今天接着介绍Evoked数据的地形图可视化。

首先还是先介绍一下Evoked结构:

Evoked结构

Evoked potential(EP)诱发电位或诱发反应是指在出现诸如闪光或纯音之类的刺激后,从人类或其他动物的神经系统,特别是大脑的特定部分记录的特定模式的电位。不同形式和类型的刺激会产生不同类型的电位。

诱发电位振幅往往较低,从小于1微伏到数微伏不等,而脑电图为数十微伏,肌电图为毫伏,心电图通常接近20毫伏。为了在EEG、ECG、EMG等生物信号和环境噪声的背景下解决这些低幅度电位,通常需要对信号进行平均。信号被时间锁定在刺激上,大部分噪声是随机产生的,这样就可以通过对重复响应来平均掉噪声。

诱发电位(Evoked)结构主要用于存储实验期间的平均数据,在MNE中,创建Evoked对象通常使用mne.Epochs.average()来平均epochs数据来实现。

本示例中,我们着重于mne.Evoked的地形图可视化绘图功能。

案例介绍

# 导入工具包import os.path as opimport numpy as npimport matplotlib.pyplot as plt

import mne

"""第一步:从文件中读取诱发对象"""# 获取数据文件默认春芳地址data_path = mne.datasets.sample.data_path()# 构建文件存放的具体路径fname = op.join(data_path, 'MEG', 'sample', 'sample_audvis-ave.fif')# 根据文件存放的具体路径evoked = mne.read_evokeds(fname, baseline=(None, 0), proj=True)

注意,诱发事件是一系列诱发事件的实例。

通过将参数条件传递给mne.read_evokeds(),您只能读取其中一个类别。为了使本教程更简单,我们将每个实例读取到一个变量。

evoked_l_aud = evoked[0]evoked_r_aud = evoked[1]evoked_l_vis = evoked[2]evoked_r_vis = evoked[3]

我们可以使用Evoked对象的mne.Evoked.plot_joint()方法在一张图中组合两种图形。按原样调用(evoked.plot_joint()),此函数应提供时空动态的信息显示。可以使用topomap_args和ts_args参数直接设置图的时间序列部分和topomap部分的样式。也可以将键值对作为Python字典传递。

然后将它们作为参数传递给联合绘图的mne.Evoked.plot_topomap()和时间序列(mne.Evoked.plot())。

对于使用这些topomap_args和ts_args参数的特定样式的示例,此处显示了特定时间点(90和200 ms)的topomaps,未绘制传感器(通过转发到plot_topomap的参数),并且显示了Global Field Power:

ts_args = dict(gfp=True, time_unit='s')topomap_args = dict(sensors=False, time_unit='s')evoked_r_aud.plot_joint(title='right auditory', times=[.09, .20],ts_args=ts_args, topomap_args=topomap_args)

如果想要比较两个或多个传感器的选择条件,或例如,为全局场功率。为此,可以使用函数mne.viz.plot_compare_evokeds()。最简单的方法是创建一个Python字典,其中键是条件名,值是mne诱发对象。

如果你提供了多个诱发对象的列表,比如那些多被试的对象,总平均值连同一个置信区间带被绘制出来——这可以用来对比整个实验的条件。

首先,我们将诱发对象加载到字典中,将键设置为‘/’分隔的标记(就像我们可以对epochs中的event_id所做的那样)。

然后,我们使用mne.viz.plot_compare_evokeds()进行绘图。该图表使用dict参数进行样式化,同样使用“/”分隔的标记。我们绘制了一个具有强烈听觉反应的脑磁图MEG通道。

conditions = ["Left Auditory", "Right Auditory", "Left visual", "Right visual"]evoked_dict = dict()for condition in conditions:evoked_dict[condition.replace(" ", "/")] = mne.read_evokeds(fname, baseline=(None, 0), proj=True, condition=condition)print(evoked_dict)

对于移动高级绘图使用mne.viz.plot_compare_evokeds()。

"""设置 evoked 类别颜色,左听觉和左视觉的线条颜色为:Crimson右听觉和右视觉的线条颜色为:CornFlowerBlue"""colors = dict(Left="Crimson", Right="CornFlowerBlue")"""设置 evoked 绘制 线型,听觉的线型为:-视觉的线型为:--"""linestyles = dict(Auditory='-', visual='--')#pick = evoked_dict["Left/Auditory"].ch_names.index('MEG 1811')

mne.viz.plot_compare_evokeds(evoked_dict, picks=pick, colors=colors,linestyles=linestyles, split_legend=True)

也可以用图像来描绘这些活动。时间沿着x轴,通道沿着y轴。振幅是彩色编码的,所以振幅从负到正转换成从蓝色到红色。白色表示零振幅。您可以使用cmap参数自己定义颜色映射。接受的值包括所有matplotlib颜色映射。

evoked_r_aud.plot_image(picks='meg')

最后将传感器数据绘制成地形图。在简单的情况下,我们只绘制左听觉反应,然后我们把它们都绘制在同一个图中进行比较。单击各个图,将它们放大。

title = 'MNE sample data\n(condition : %s)'evoked_l_aud.plot_topo(title=title % evoked_l_aud.comment,background_color='k', color=['white'])mne.viz.plot_evoked_topo(evoked, title=title % 'Left/Right Auditory/Visual',background_color='w')

对于少量传感器,也可以创建更精细的弹出窗口。同样,单击传感器可打开一个单传感器图。

mne.viz.plot_compare_evokeds(evoked_dict, picks="eeg", colors=colors,linestyles=linestyles, split_legend=True,axes="topo")

文章来源于网络,仅用于学术交流,不用于商业行为,若有侵权及疑问,请后台留言!

更多阅读

脑机接口BCI学习交流QQ群:515148456

微信群请扫码添加,Rose拉你进群

(请务必填写备注,eg. 姓名+单位+专业/领域/行业)

长按加群

python绘制动态心电图_Python-Evoked地形图可视化相关推荐

  1. [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化

    本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化.GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口.GeoPandas扩展了Pandas ...

  2. python绘制花朵图案_Python实现平行坐标图的绘制(plotly)方式

    平行坐标图简介 当数据的维度超过三维时,此时数据的可视化就变得不再那么简单.为解决高维数据的可视化问题,我们可以使用平行坐标图.以下关于平行坐标图的解释引自百度百科:为了克服传统的笛卡尔直角坐标系容易 ...

  3. python绘制剖面图_Python气象绘图教程—(十九)剖面图

    本节提要:简要谈谈地形剖面图.纬度高度剖面图.时间纬度图的绘制方法. 提要中提到的这几种图形都是在气象上比较常用的,地形剖面主要研究地貌对降雨.气流的影响作用:纬度高度剖面图可以用来分析降雨的某些条件 ...

  4. 基于Python绘制Argo全球数据的可视化图像

    资源下载地址:https://download.csdn.net/download/sheziqiong/85624724 目录 一.项目任务 1 二.背景资料 1 ARGO 1 NetCDF 2 M ...

  5. python绘制剖面图_python可视化 | 垂直剖面图填色图绘制基础

    剖面图使用的资料是ERA5 hourly data on pressure levels from 1979 to present的再分析资料,降水量图则用的是ERA5 hourly data on ...

  6. python绘制四叶草_python绘图四叶草_Python教程,python,绘图

    Python阶乘求和的方法_Python教程 Python阶乘求和的方法:首先定义一个getSum函数,在函数内使用for循环调用fact函数:然后在fact函数内对一个数进行求阶乘运算,并将计算的结 ...

  7. python绘制等距曲线_python应用之猪肉价格曲线的绘制

    python应用之猪肉价格曲线的绘制 刘巍巍 大家这学期和我一起去食堂的时候,有没有这样的感觉--猪肉居然成了稀奇东西!!!食堂开始大量用鸡肉和鸭肉来代替猪肉.一到菜市场去看,居然猪肉都支持分期付款了 ...

  8. python颜色表_Python:数据可视化,必须注意的30个小技巧

    原标题:Python:数据可视化,必须注意的30个小技巧 优秀的数据可视化图表只是罗列.总结数据吗?当然不是!数据可视化其真正的价值是设计出可以被读者轻松理解的数据展示,因此在设计过程中,每一个选择, ...

  9. python数据分析实例_Python数据分析及可视化实例之爬虫源码(05)

    1.背景介绍 (1)在注册了某网站之后,发现站内个人页面有个关于京杭大运河的征文.再加上之前,九寨沟地震第一时间机器人写了一篇通讯稿.于是我就在想,既然机器可以写通讯稿,那么是不是也可以用来写篇关于京 ...

最新文章

  1. 学习SQLite之路(五) C/C++ SQLite开发实例
  2. boost::mpl::advance相关用法的测试程序
  3. 多线程下不能用truncate吗_那么多的化妆品,怀孕后都不能用了吗?
  4. 豆瓣的jQuery使用技巧
  5. 【8.0、9.0c】树形列表 列标题 不对齐的问题及解决方案
  6. Deformable Shape Completion with Graph Convolutional Autoencoders
  7. mxnet导入图像数据
  8. 为什么觉得今年工作特别难找?
  9. 手把手·教你用 Echarts 画 ChinaMap
  10. Diablo2oo2s Universal Patcher(文件补丁工具) 2.18.3 绿色汉化版
  11. 多点温度检测上位机显示_多点温度检测系统设计(论文)
  12. 抖音 iOS 推荐 Feed 容器化总结
  13. 电信NB-IOT物联网卡与阿里云物联网平台,不得不说的秘密!
  14. 全球十大管理咨询公司的排名
  15. npm 同时安装同一个包的不同版本(npm@6.9 alias)
  16. 海思软件开发入门篇 (一)
  17. 使用Android拨打电话功能
  18. x86、amd、arm和GPU
  19. WebRTC源码研究(4)web服务器工作原理和常用协议基础
  20. department apartment

热门文章

  1. asp.net mvc(十一)自定义view engine
  2. Visual Studio 2010 下载,安装,激活,序列号,注册码,下载地址
  3. 蓝韵PACS工作站‘授权效验失败’问题解决!
  4. 互联网会成为人类的敌人么?
  5. JAVA SE中你可能不知道的知识点
  6. c语言常用符号优先级问题,【C语言】符号优先级
  7. AM335x(TQ335x)学习笔记——u-boot-2014.10移植
  8. 在接口中利用匿名内部类实现接口
  9. 软件版本号设置规则及示例
  10. 网络安全新架构:零信任安全