更具感知一致性的彩色地图?

2024-10-02 12:27:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我主张在将科学数据绘制为灰度图像和应用假彩色时,使用感知一致的彩色地图。我不知道是谁发明了这些,但这些彩色地图太棒了,我不会用其他任何东西

老实说,我对5个彩色地图(viridis、plasma、inferno、magma、cividis)有点厌倦了,它们已经在许多流行的绘图软件(R-ggplot、python matplotlib、matlab、JMP等)中实现。我相信你们中的一些人也有同样的单调感

那么除了这5个颜色贴图之外,还有哪些颜色贴图在视觉上是一致的呢?

奖励:是否有一些算法可以获得感知一致质量的彩色贴图(可能不是因为颜色感知有心理方面)?但如果是这样,那是什么呢

一些例子&;参考文献: https://matplotlib.org/tutorials/colors/colormaps.htmlhttps://matplotlib.org/tutorials/colors/colormaps.html

https://www.youtube.com/watch?v=xAoljeRJ3lU


Tags: 数据图像颜色地图绘制科学老实灰度
2条回答

如果您遵循以下页面:http://bids.github.io/colormap/,您将找到生产翡翠、岩浆、地狱和等离子所需的所有详细信息。所有细节都太长,无法作为答案列举,但是使用前面提到的页面和viscm,您可以重新生成它们和一些更具交互性的内容

或者,使用Colour

import colour
import numpy as np

CAM16UCS = colour.convert(['#ff0000', '#00ff00'], 'Hexadecimal', 'CAM16UCS')
gradient = colour.utilities.lerp(
    CAM16UCS[0][np.newaxis],
    CAM16UCS[1][np.newaxis],
    np.linspace(0, 1, 20)[..., np.newaxis])
RGB = colour.convert(gradient, 'CAM16UCS', 'Output-Referred RGB')

colour.plotting.plot_multi_colour_swatches(
    [colour.plotting.ColourSwatch(RGB=np.clip(x, 0, 1)) for x in RGB])

print(colour.convert(RGB, 'Output-Referred RGB', 'Hexadecimal'))

['#fe0000' '#fb3209' '#f74811' '#f35918' '#ef671e' '#ea7423' '#e67f28'
 '#e18a2c' '#dc9430' '#d79e34' '#d1a738' '#cbb03b' '#c4b93d' '#bcc23e'
 '#b2cc3d' '#a6d53a' '#97df36' '#82e92e' '#62f321' '#00ff00']

PUG

请注意,两种边界颜色以十六进制值给出,但您显然可以选择任何相关的颜色空间。同样地,CAM16也可以换成JzAzBz或类似产品

你可以用这个Google Colab notebook在网上试试

我想有点晚了,但我的CMasher package提供了大量的科学彩色地图(我认为在撰写本文时是42张),这些地图在感知上都是统一的序列。 以下是撰写本文时CMasher中当前可用的所有颜色贴图的概述。 CMasher colormap overview

online documentation中,我分别描述了每个颜色映射;讨论提高colormap使用率的主要方法等。 它还提供了一组实用函数,可用于以各种方式操作颜色贴图

相关问题 更多 >

    热门问题