如何从基本色开始,生成总体上美观的线形图颜色范围(数量未知)


How can I generate a generally aesthetically pleasing range of line-graph colors (unknown in number), starting with a base color?

我喜欢David Crow在这里提出的随机颜色生成算法,但我想知道是否有一种方法可以将其结果集中在单一颜色周围并调节结果。

我的程序将生成跟踪许多变量的图形。每个变量属于7个类别中的一个。我想为这些变量生成线色,这些变量是易读的,独特的,并且色调,饱和度和亮度在与其类别相关的根色的近似范围内。例如,红色类别的变量将是各种清晰可辨的红色变体。

一个解决方案可能是声明一个根色,加上色调,饱和度和亮度的上下边界。然后我可以从这些范围内随机抽取值,但是否有更好的方法在这三个维度内进行跳房子游戏,从而使最终的颜色有相当数量的变化,但仍然留下增长的空间?例如,假设每个管道是一个范围值,每行是一个迭代:

01 > |---------------|---------------|
02 > |-------|-------|---------------|
03 > |-------|-------|-------|-------|
04 > |---|---|-------|-------|-------|
05 > |---|---|---|---|-------|-------|
06 > |---|---|---|---|---|---|-------|
07 > |---|---|---|---|---|---|---|---|
08 > |-|-|---|---|---|---|---|---|---|
09 > |-|-|-|-|---|---|---|---|---|---|
10 > |-|-|-|-|-|-|---|---|---|---|---|
11 > |-|-|-|-|-|-|-|-|---|---|---|---|
12 > |-|-|-|-|-|-|-|-|-|-|---|---|---|
13 > |-|-|-|-|-|-|-|-|-|-|-|-|---|---|
14 > |-|-|-|-|-|-|-|-|-|-|-|-|-|-|---|
15 > |-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|-|

最好的方法是什么?还是说这是解决我问题的最好办法?单个图可能不超过4或5个变量,但可以绘制的变量数量可能达到数百个。

谢谢你的帮助。

你可以将其视为3D中的球体填充问题:你希望颜色之间的距离是一致的。这方面的最佳安排取决于您需要的不同颜色的数量,找到最佳解决方案并不简单。然而,一个简单的机制可能是保存一个以面为中心的立方坐标序列,从(0,0,0)开始,按距离原点的距离排序,并按顺序使用它们作为"基本"颜色的偏移量(通过一个参数来设置彼此之间的差异)。

如果你想最大限度地关注细节,请注意,色彩理论和感知的研究人员已经测量了可视范围内的最小可分辨色差。您可以使用这些数据调整您的颜色偏移向量(使用矩阵乘法,而不是上面提到的简单缩放),以确保您的颜色差异看起来相同。