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

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

相关文章

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

Pydantic中Optional 和Union类型的使用

《Pydantic中Optional和Union类型的使用》本文主要介绍了Pydantic中Optional和Union类型的使用,这两者在处理可选字段和多类型字段时尤为重要,文中通过示例代码介绍的... 目录简介Optional 类型Union 类型Optional 和 Union 的组合总结简介Pyd

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Python实现一键隐藏屏幕并锁定输入

《使用Python实现一键隐藏屏幕并锁定输入》本文主要介绍了使用Python编写一个一键隐藏屏幕并锁定输入的黑科技程序,能够在指定热键触发后立即遮挡屏幕,并禁止一切键盘鼠标输入,这样就再也不用担心自己... 目录1. 概述2. 功能亮点3.代码实现4.使用方法5. 展示效果6. 代码优化与拓展7. 总结1.

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Linux中的计划任务(crontab)使用方式

《Linux中的计划任务(crontab)使用方式》:本文主要介绍Linux中的计划任务(crontab)使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、前言1、linux的起源与发展2、什么是计划任务(crontab)二、crontab基础1、cro

kotlin中const 和val的区别及使用场景分析

《kotlin中const和val的区别及使用场景分析》在Kotlin中,const和val都是用来声明常量的,但它们的使用场景和功能有所不同,下面给大家介绍kotlin中const和val的区别,... 目录kotlin中const 和val的区别1. val:2. const:二 代码示例1 Java