5

我有一个数值列表。如果需要,我可以标准化这些值。

我需要将此列表转换为颜色列表(在 HSL、RGB 或任何其他颜色模型中——我总是可以稍后进行转换)。

对于任何给定的值,颜色每次都必须相同。

两个给定数值越不同,对应值的对比度应该越大。

所有使用的颜色必须尽可能相互对比(这是一个软限制,粗略的解决方案就可以了)。

请注意,列表相当大(数以千计的数字),因此简单地将所有数字压缩到单个颜色通道中会产生过于密集的结果。

4

4 回答 4

2

无论您最终选择哪种算法,都可以尝试CIELAB色彩空间。它将人类颜色感知的差异归一化,因此相等的数字间距会产生相等的感知差异。

于 2009-01-30T23:30:27.550 回答
2

您可以考虑在您选择的色彩空间中使用 3D空间填充曲线。我会支持 Mark 的CIELAB建议,希望上次我必须解决类似问题时知道这一点。

于 2009-01-30T23:37:48.690 回答
1

请参阅:如何自动生成 N 个“不同”颜色?

最好标准化您的值,并通过我建议的代码运行它们(其中色调 == 您的值),构建地图/哈希。(您可以改用哈希样式的函数,这可能更有效。)

例如,您可以使用数字的某些预定位“随机化”亮度(或亮度,取决于您的型号)和饱和度。

于 2009-01-30T23:13:12.157 回答
0

为什么不使用灰色阴影?只需计算最小/最大值并使用它将每个数字转换为从白色到黑色的不同阴影。

我知道这不是颜色,但在我看来,解释结果会更容易。我可以说出颜色较深与较浅的含义,但谁能说,例如,绿色比橙色的值更高?

于 2009-01-30T23:13:11.893 回答