彩虹之上:神经生理学中有效使用彩色图的指南

2024-06-14 17:32

本文主要是介绍彩虹之上:神经生理学中有效使用彩色图的指南,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章来源于微信公众号(茗创科技),欢迎有兴趣的朋友搜索关注。

数据的可视化在神经生理学研究中很常见。在这里,研究者强调了与彩虹(rainbow)配色方案持续误用有关的特定知觉问题,以电生理学中的时频分解作为一个例证。在此背景下,研究者回顾了神经生理学数据存在解释偏差的风险,并提供相应指南以改进色彩图的使用,为可视化复杂的、多维的神经生理学研究数据奠定基础。

脑电图(EEG)是认知和临床神经科学中最常用的技术。随着采集系统的记录、计算和分析工具箱的功能增强,EEG研究人员可以很容易地将数据进行转换,以时间分辨的方式突出神经活动的各种属性。这也适用于人类脑磁图(MEG)和颅内记录,它们通常与EEG技术相伴随,主要是对电生理时间序列的时频分解。在过去的20年里,使用这种基于频率分析的EEG研究的数量增加了4500%(据PubMed上的统计)。简而言之,时频分析利用傅立叶或小波变换等操作估计神经生理数据的频率(频谱)内容。频率估计是跨时间窗进行的,其中,频率特性的变化,如信号功率,可以通过时间-频率图等可视化表示来进行评估和解释。

时频图是投影至二维平面上的三维图。通常,横坐标表示时间,纵坐标表示频率。图的起伏代表与时间 × 频率坐标相关的一个因变量(例如,电生理时间序列的功率或相位)。地形特征是用彩色刻度来表示起伏的大小。研究者认为,这种颜色图可能会在知觉上产生误导,因此可能导致对神经生理效应的检测和解释产生偏颇。本研究的目标是提高人们对这些问题的认识,这些问题不是特定于时频图绘制或电生理学研究,而是影响科学数据的可视化,并提供最佳实践的建议。

在过去的20年里,约74%的电生理学研究的时间-频率经验效应是使用彩虹调色板的衍生物(例如,MATLAB的jet颜色方案;图1B)。彩虹调色板将数据值映射到RGB空间的线性路径上,从较冷的蓝色和绿色色调到较暖的黄色和红色色调。由此产生的配色方案色彩鲜艳,视觉悦目。然而,彩虹图会产生可论证和可量化的视觉错误,例如高对比度区域会在图像中产生异常现象(如不太协调的颜色跳跃)。一些科学领域,如海洋学和制图学已经创建并采用了替代配色方案,以缓解彩虹调色板存在的问题。

图片

图1. 电生理学研究出版物中使用的彩虹配色方案。A:矩形树图显示了在2000年到2020年间EEG文献中使用的彩色地图的相对比例,报告时频图作为多维神经生理学数据的典型例子。彩虹调色板约占所有时频图报告实例的74%。B:从2000年到2020年,每年在EEG时频效应出版物中使用彩虹配色方案的比例。C:常用的电生理学工具箱及其相关的默认颜色图。通常在时频图中,彩色图上的中点反映基线活动,而不管其是否是连续的 (magma,jet,parula) 还是分散的 (rd-yl-bu,rd-bu)。

克服彩虹调色板的不足

Jet是彩虹调色板的一个例子,需要在MATLAB中执行。因为MATLAB也是电生理研究的常用工具,以下将用jet作为彩虹配色方案的一个典型例子来说明此文的论点。然而,研究者发现,其实这些出现的问题存在于所有彩虹调色板中。

1. 彩虹缺乏自然的感知顺序

Rainbow颜色图像jet一样没有自然的感知顺序。考虑灰度调色板-较深和较浅的灰色有一个基于其亮度的自然感知顺序,称为连续色阶。相比之下,Rainbow颜色调色板不具备一套固有的自然顺序,它们依赖色调(颜色)的固定顺序,而不是亮度来区分颜色图的各个部分(图2)。时频图的有效绘制使用的Rainbow颜色依赖观看者所熟悉的色彩方案。然而,行为数据显示,即使是那些自称熟悉Rainbow配色方案的人,在阅读用Rainbow绘制的数据而不是自然排列的色标度时,表现更差(即出错率增加)。当用有顺序的调色板绘制时,知觉顺序的缺乏是明显的(图2)。灰阶从亮到暗的变化,或从暗到亮的色调是直观的解释。同样地,从一个共同的基线颜色发散出来的多色尺度也提供了可解释的感知顺序(如,Rd-Bu;图2)。Rainbow颜色图则不提供这些知觉属性。

图片

图2. 彩虹vs.交替配色方案的知觉特性。

2. 彩虹图在感知上并不统一

感知色彩丰富度、明度和相邻色调之间的色调角应该是等距的。Rainbowjet变化中,相邻色调之间的距离在感知上有显著的变化。例如,颜色图的蓝色区域包含约30%的连续数据值,而黄色部分则减少约6%。这种不平衡是人为地扩大了非蓝色编码的数据部分的感知优势,因为使得它们从蓝色为主色调的背景中脱颖而出。在实践中,时频图经常以一个(例如,刺激前)基线为中心呈现与事件相关信号大小的变化。Rainbow颜色图的中点(即绿色)通常是代表数据振幅的零点。因此,从基线开始,信号幅度的减少用蓝色色调表示,而类似幅度的增加则用更广泛的颜色范围(包括黄色、橙色和红色)进行绘制。数据绘制的不平衡挑战了观察者对窄带颜色变化的辨别能力。这些问题导致感知和数据报告偏差的增加。

Rainbow颜色绘图和感知的这种不平衡导致了视觉显示上的急剧变化区。这些变化极大地改变了图像内容的识别,因此这不一定反映了基础数据的真实性质(图2)。Rainbow配色方案中的黄色色调被认为更明亮,倾向于将注意力放在不太重要的数据特征上。综上所述,有充足的证据表明,为什么Rainbow色板会误导或者对数据的解释存在感知偏差。

3. 彩虹图对于那些有色觉缺陷的人来说是不太容易理解的

Rainbow图需要对红色、黄色和绿色进行有效的知觉识别。但是Rainbow颜色图代表的是相似亮度水平的红色和绿色,这对有色觉缺陷(CVDs)者对色标的感知形成了挑战。CVDs以不同的方式影响对颜色的感知,这取决于影响视锥细胞的缺陷的性质。但是,Rainbow色板需要的不是色调强度,而是色调的区分能力。因此,Rainbow色板对CVD观看者具有系统性的挑战。因此,为了促进科学出版物对读者的包容性,应该避免出现挑战CVD知觉可辨别性的彩色图。

基于软件的解决方案

图1C显示了神经生理学流行软件包中时频图的默认调色板。

这里,研究者提供了一个开源的、可访问的调色板列表。需要注意的是,改变调色板所需的具体步骤可能会因所使用的软件而异。对于使用MATLAB可视化的数据,用户可以在调用colormap函数之前加载下面的其中一个安装包。

1.Cividis。

视知觉统一的色彩图,为有或没有红绿CVD者提供相似的数据外观。

2.ColorCET。

可获得29种不同格式的视知觉统一的色彩图(https://colorcet.com)

3.色彩通用设计(https://jfly.uni-koeln.de/color/)

为科学可视化创建适当的配色方案的指南。研究者在这里也提供了一个MATLAB工具包(https://github.com/neurocoops/colourFriendlyMap)来根据这些原则构建颜色标度。

4.CMOcean。

https://matplotlib.org/cmocean/

5.ColorBrewer。

https://colorbrewer2.org

6.Matplotlib色彩图。

包括viridisplasmainfernomagmacividis颜色图,具有连续性和视知觉统一性。也包括ColorBrewer图(https://github.com/BIDS/colormap)

7.科学色彩图。

https://www.fabiocrameri.ch/colourmaps/

最后,研究者所强调的视觉化神经生理学数据时使用Rainbow调色板所产生的主要问题,其目的不是在指定一个特定的替代配色方案,因为最合适的调色板应该根据个体情况而定。然而,研究者提倡研究人员、软件开发人员和期刊编辑共同努力,不倡导在神经生理学中使用Rainbow颜色图,以确保数据能够更清晰、精确和容易获得。

原文:Over the rainbow: guidelines for meaningful use of colour maps in neurophysiology, NeuroImage (2021).

doi: https://doi.org/10.1016/j.neuroimage.2021.118628

这篇关于彩虹之上:神经生理学中有效使用彩色图的指南的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1061060

相关文章

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

springboot中使用okhttp3的小结

《springboot中使用okhttp3的小结》OkHttp3是一个JavaHTTP客户端,可以处理各种请求类型,比如GET、POST、PUT等,并且支持高效的HTTP连接池、请求和响应缓存、以及异... 在 Spring Boot 项目中使用 OkHttp3 进行 HTTP 请求是一个高效且流行的方式。

Java使用Javassist动态生成HelloWorld类

《Java使用Javassist动态生成HelloWorld类》Javassist是一个非常强大的字节码操作和定义库,它允许开发者在运行时创建新的类或者修改现有的类,本文将简单介绍如何使用Javass... 目录1. Javassist简介2. 环境准备3. 动态生成HelloWorld类3.1 创建CtC

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

Java使用jar命令配置服务器端口的完整指南

《Java使用jar命令配置服务器端口的完整指南》本文将详细介绍如何使用java-jar命令启动应用,并重点讲解如何配置服务器端口,同时提供一个实用的Web工具来简化这一过程,希望对大家有所帮助... 目录1. Java Jar文件简介1.1 什么是Jar文件1.2 创建可执行Jar文件2. 使用java

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决