眼动分析MNE-Python系列教程2:绘制眼动追踪热图

Hands On

Posted by 陈锐CR on August 30, 2025 | 阅读

大家好,我是陈锐。

今天内容来源网络整理,仅供学习参考。

本文基于MNE-python官方网站上介绍的眼动追踪热图内容进行进一步分享,仅供学习参考。

本文的脑图思路:

Zl93UAAAAAElFTkSuQmCC

本文是关于使用MNE-Python绘制眼动追踪热图的教程文章。

主要介绍了如何加载和处理眼动追踪数据以及如何将眼动数据可视化为热图并在图像上叠加显示。

1.数据加载:

  • 导入所需模块:导入matplotlib.pyplot、mne等必要的Python模块。
  • 加载示例数据:使用mne.datasets.eyelink加载示例眼动追踪数据,该数据以SR research的’.asc’文件格式记录。
  • 读取校准数据:从眼动追踪数据文件中读取校准数据,并设置屏幕分辨率和尺寸等参数。

以下是代码:

import matplotlib.pyplot as pltimport mne
task_fpath = mne.datasets.eyelink.data_path() / "freeviewing"et_fpath = task_fpath / "sub-01_task-freeview_eyetrack.asc"stim_fpath = task_fpath / "stim" / "naturalistic.png"
raw = mne.io.read_raw_eyelink(et_fpath)calibration = mne.preprocessing.eyetracking.read_eyelink_calibration(et_fpath,screen_resolution=(1920, 1080),screen_size=(0.53, 0.3),screen_distance=0.9,)[0]

2.数据处理和分块:

  • 插值眨眼期间缺失数据:使用mne.preprocessing.eyetracking.interpolate_blinks函数插值眨眼期间的缺失数据。
  • 重命名注释:将注释重命名为更直观的名称。
  • 划分时段:使用mne.Epochs函数根据事件划分数据时段,设置时段开始和结束时间。

代码:

mne.preprocessing.eyetracking.interpolate_blinks(raw, interpolate_gaze=True)raw.annotations.rename({"dvns": "natural"}) # more intuitiveepochs = mne.Epochs(raw, event_id=["natural"], tmin=0, tmax=20, baseline=None)

3.绘制眼动追踪热图:

  • 定义画布尺寸:根据参与者屏幕的屏幕分辨率(1920x1080)定义画布尺寸。
  • 使用plot_gaze函数:调用mne.viz.eyetracking中的plot_gaze函数绘制眼动热图,使用sigma参数平滑热图。

代码

cmap = plt.get_cmap("viridis")plot_gaze(epochs["natural"], calibration=calibration, cmap=cmap, sigma=50)

4.在图像上叠加热图:

  • 自定义颜色映射:使用matplotlib设置颜色映射,使热图的最低值透明。
  • 读取并显示刺激图像:使用plt.imread读取刺激图像文件,并在图像上叠加眼动热图。

代码

cmap.set_under("k", alpha=0) # make the lowest values transparentax = plt.subplot()ax.imshow(plt.imread(stim_fpath))plot_gaze(epochs["natural"],calibration=calibration,vlim=(0.0003, None),sigma=50,cmap=cmap,axes=ax,)

5.以视觉角度为单位显示热图:

  • 转换数据单位:使用mne.preprocessing.eyetracking.convert_units函数将眼动数据单位转换为弧度。
  • 重新绘制热图:在单位转换后重新绘制眼动热图,以视觉角度为单位显示数据。

代码

epochs.load_data()mne.preprocessing.eyetracking.convert_units(epochs, calibration, to="radians")plot_gaze(epochs["natural"], calibration=calibration, sigma=50)

凝视热图

凝视热图

往期内容推荐: 心理学系列软件安装教程

近红外脑成像技术数据分析工具箱软件网址汇总

脑电数据分析软件汇总网址

统计学软件目录

心理学系列安装软件之MNE-Python软件环境安装

心理学系列软件:E-prime1.1 安装教程!

心理学系列软件:PsychoPy 安装教程!

心理学系列软件安装之OpenSesame安装教程及初探

心理学系列软件安装之Psychtoolbox安装教程

心理学系列软件安装之SPSS 26安装教程(基于Window11)

心理学系列软件安装之R语言/Rstudio下载安装教程(基于window11系统)

心理学系列软件安装之统计建模分析软件Mplus 8.3 (基于Mac版本)

科研绘图软件安装之GraphPad Prism 10 for Mac

心理学系列软件安装之EEGLAB下载安装教程

眼动仪联合不同EEG设备的使用分析教程

如何同步各种脑电、近红外、眼动设备

眼动技术和脑电/近红外技术多模态联合使用方法

EyeLink眼动仪与NeuroScan脑电设备同步采集及使用EEGLAB进行数据融合分析

EyeLink眼动仪与Brain Products脑电的联合使用及使用EEGLAB融合数据分析

EyeLink眼动仪与EGI脑电设备同步采集及使用EEGLAB进行数据融合分析

fNIRS近红外脑成像相关

近红外脑成像数据处理过程总结

fNIRS技术入门文章

近红外脑功能成像实验设计

近红外脑成像简介与实验设计

fNIRS近红外光信号质量影响因素

近红外软件NIRS-KIT上手使用学习记录

一文带你学习Homer3的简介和使用

近红外脑成像技术数据分析工具箱软件网址汇总

关于fNIRS数据处理与分析的建议

EEG相关内容

EEG信号采集、处理和分析的基本知识

EEG数据的微状态分析教程

一文了解EEG/ERP的基础知识

一文了解研究人脑的脑科学技术手段

EEGLAB数据预处理基本流程GUI实操指南

使用EEGLAB进行脑电数据预处理步骤

EEGLAB 常见内置函数

大脑基础知识

大脑基础知识:了解你的大脑

大脑基础知识:了解大脑节律电信号

大脑基础知识:大脑皮层

大脑基础知识:大脑左半脑与右半脑

大脑基础知识:额叶及其功能

大脑基础知识:大脑顶叶的位置、结构和功能

大脑基础知识:大脑枕叶及其功能

大脑基础知识:大脑皮层的不同细胞结构

大脑活动记录技术

一个免费的大脑脑区可视化网页

大脑基础知识:中枢神经系统


谢谢大家观看,如有帮助,来个喜欢或者关注吧!


看完如果觉得有用,欢迎大家点赞图片关注图片转发图片点亮在看图片赞赏图片,都是对本公众号的支持,我会非常谢谢您。

本文作者:大脑技术

欢迎添加公众号小助手微信

和她可以谈项目,聊技术,搭平台,做咨询,介绍工作等等等等

添加微信时请备注(姓名-单位-职位-合作意向)

(可扫描下方二维码添加小助手微信)

图片

更多脑科学技术内容,请加入付费知识星球

图片


谢谢大家观看,如有帮助,来个喜欢或者关注吧!


本文作者:陈锐

有任何疑问及建议,扫描以下公众号二维码添加交流:

img

更多脑科学技术内容,请加入付费知识星球

img

公众号:大脑技术

热爱生活,热爱技术;分享生活,分享技术。


版权声明:本文由 陈锐CR 在 2025年08月30日发表。本博客文章作者为陈锐CR时均采用属于个人原创撰写,未经许可,禁止在任何媒介以任何形式复制、发行本文章,如需转载,请查看About联系方式,非商业转载请注明出处,不得用于商业目的。
文章题目及链接:《眼动分析MNE-Python系列教程2:绘制眼动追踪热图》



☛您的打赏是我创作的动力☚


  相关文章:

「游客及非Github用户留言」:

%
UP
博客已运行