python绘制动态心电图_Python-Evoked地形图可视化
今天接着介绍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地形图可视化相关推荐
- [数据分析与可视化] Python绘制数据地图2-GeoPandas地图可视化
本文主要介绍GeoPandas结合matplotlib实现地图的基础可视化.GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口.GeoPandas扩展了Pandas ...
- python绘制花朵图案_Python实现平行坐标图的绘制(plotly)方式
平行坐标图简介 当数据的维度超过三维时,此时数据的可视化就变得不再那么简单.为解决高维数据的可视化问题,我们可以使用平行坐标图.以下关于平行坐标图的解释引自百度百科:为了克服传统的笛卡尔直角坐标系容易 ...
- python绘制剖面图_Python气象绘图教程—(十九)剖面图
本节提要:简要谈谈地形剖面图.纬度高度剖面图.时间纬度图的绘制方法. 提要中提到的这几种图形都是在气象上比较常用的,地形剖面主要研究地貌对降雨.气流的影响作用:纬度高度剖面图可以用来分析降雨的某些条件 ...
- 基于Python绘制Argo全球数据的可视化图像
资源下载地址:https://download.csdn.net/download/sheziqiong/85624724 目录 一.项目任务 1 二.背景资料 1 ARGO 1 NetCDF 2 M ...
- python绘制剖面图_python可视化 | 垂直剖面图填色图绘制基础
剖面图使用的资料是ERA5 hourly data on pressure levels from 1979 to present的再分析资料,降水量图则用的是ERA5 hourly data on ...
- python绘制四叶草_python绘图四叶草_Python教程,python,绘图
Python阶乘求和的方法_Python教程 Python阶乘求和的方法:首先定义一个getSum函数,在函数内使用for循环调用fact函数:然后在fact函数内对一个数进行求阶乘运算,并将计算的结 ...
- python绘制等距曲线_python应用之猪肉价格曲线的绘制
python应用之猪肉价格曲线的绘制 刘巍巍 大家这学期和我一起去食堂的时候,有没有这样的感觉--猪肉居然成了稀奇东西!!!食堂开始大量用鸡肉和鸭肉来代替猪肉.一到菜市场去看,居然猪肉都支持分期付款了 ...
- python颜色表_Python:数据可视化,必须注意的30个小技巧
原标题:Python:数据可视化,必须注意的30个小技巧 优秀的数据可视化图表只是罗列.总结数据吗?当然不是!数据可视化其真正的价值是设计出可以被读者轻松理解的数据展示,因此在设计过程中,每一个选择, ...
- python数据分析实例_Python数据分析及可视化实例之爬虫源码(05)
1.背景介绍 (1)在注册了某网站之后,发现站内个人页面有个关于京杭大运河的征文.再加上之前,九寨沟地震第一时间机器人写了一篇通讯稿.于是我就在想,既然机器可以写通讯稿,那么是不是也可以用来写篇关于京 ...
最新文章
- 学习SQLite之路(五) C/C++ SQLite开发实例
- boost::mpl::advance相关用法的测试程序
- 多线程下不能用truncate吗_那么多的化妆品,怀孕后都不能用了吗?
- 豆瓣的jQuery使用技巧
- 【8.0、9.0c】树形列表 列标题 不对齐的问题及解决方案
- Deformable Shape Completion with Graph Convolutional Autoencoders
- mxnet导入图像数据
- 为什么觉得今年工作特别难找?
- 手把手·教你用 Echarts 画 ChinaMap
- Diablo2oo2s Universal Patcher(文件补丁工具) 2.18.3 绿色汉化版
- 多点温度检测上位机显示_多点温度检测系统设计(论文)
- 抖音 iOS 推荐 Feed 容器化总结
- 电信NB-IOT物联网卡与阿里云物联网平台,不得不说的秘密!
- 全球十大管理咨询公司的排名
- npm 同时安装同一个包的不同版本(npm@6.9 alias)
- 海思软件开发入门篇 (一)
- 使用Android拨打电话功能
- x86、amd、arm和GPU
- WebRTC源码研究(4)web服务器工作原理和常用协议基础
- department apartment
热门文章
- asp.net mvc(十一)自定义view engine
- Visual Studio 2010 下载,安装,激活,序列号,注册码,下载地址
- 蓝韵PACS工作站‘授权效验失败’问题解决!
- 互联网会成为人类的敌人么?
- JAVA SE中你可能不知道的知识点
- c语言常用符号优先级问题,【C语言】符号优先级
- AM335x(TQ335x)学习笔记——u-boot-2014.10移植
- 在接口中利用匿名内部类实现接口
- 软件版本号设置规则及示例
- 网络安全新架构:零信任安全