1

我编写了一个基本的可视化工具,它可以将一些数据从 MySQL 数据库中提取到几个视图中,并在 python 中进行一些数学运算。

在大多数情况下,我已经构建了该工具;我现在有一个有点奇怪的问题……</p>

我正在尝试使用我可以使用的主要工具的图形和颜色来传达尽可能多的简单数据。

不涉及项目的细节:我有两个主要变量,A 和 B。A 有 4 个值,B 有 5 个。

我想在 A=4 时使用绿色,在 A=3 时使用黄色,在 A=2 时使用橙色,在 A=1 时使用红色。在 B 变量空间中,我想我会使用饱和度 - 100% @ 5、80% @ 4、60% @ 3、40% @ 2 和 20% @ 1

我并不拘泥于这些价值观——它们通过它们对数据中不同“级别”或边界的建议,使我想讲述的故事具有某种逻辑意义以及数学意义。

只是,他们没有。颜色不会将此信息传达给用户。很难从视觉上区分 100% 和 80% 的颜色——我猜这是因为我们的颜色响应不是线性的。

我想知道是否有人对我如何使用颜色以一种可感知的方式划分我的两个可变计划有任何想法?

我很感激这个问题可能是在错误的地方——我不确定我还能在哪里问这样的事情。

4

1 回答 1

1

RGB 颜色空间更多地与显示器和其他设备用来制作颜色的光有关,而不是您对各个通道的感知。有许多色彩空间,每个都有自己的特点。

例如,LMS 颜色空间是根据描述人眼传感器对光响应方式的实际光谱功率分布曲线建模的:

http://en.wikipedia.org/wiki/LMS_color_space

...其曲线可以用复合 8 位 RGB 值近似,但直言不讳。

对你来说,我会推荐 L a b* 颜色空间,它在很多方面都是最优化的折衷方案,它是我们(就像我们人类一样)在概念上可以掌握的内容、我们可以在数学上建模的内容以及我们如何看待的交叉点.

如果您觉得这令人生畏,那么 HSV 值就是您的朋友。就色域而言,HSV 在技术上与 RGB 并没有不同的色彩空间——它是 RGB 空间的一种扭曲视图,其数字表示更适合您的原因:

HSV 颜色空间

HSV 中的“H”是色相圆周围的度数(从 0 到 360 - 您可能会看到它以弧度表示,也表示在 [0..2π] 范围内);S 和 V 分别是饱和度(多少色度)和值(调制亮度值)。HSV 是 HSL 的一种转置,其中 L 是更直接的亮度度量。

所有这一切的重点是:它是相关的。如果您改变 H 值,在保持 S 和 V 不变的同时围绕圆圈移动色调,则用户比(例如)将 0xEFEEEE 更改为 0xEFEFEF 并将该值放在 LCD 像素上时更容易察觉。因此,使用 HSV 或 HSL 值的好处是:当您确实需要显示它们时,您可以将它们无损地转换回 RGB。

RGB 和 L a b* 之间的转换数学要简单得多——它是一个抽象的色彩空间,其轴和维度并未与人类视觉的特定品质相关——但玩弄任何色彩空间数学至少值得 1000话,可以这么说。

祝你好运,这听起来是一个不错的项目。

于 2012-03-02T07:17:05.080 回答