按层次着色节点的算法

3
我有一个网络,其中节点通过UN SITC coding进行分层定义。在我的应用程序中,每个节点具有四个逐渐具体的标识数字(例如,请参见产品7431),但我定义的网络不仅仅是明显的分层结构。我试图做的是按层次着色节点,但根据我的网络计算布局它们,并看到两者在多大程度上重合。
一般而言,我正在寻找一种生成N个颜色调色板的方法,这些调色板在视觉上尽可能不同(显然,随着N的增长,效果越来越差),然后将它们分成子调色板,直到达到所需的分层深度。
具体来说,这意味着选择10种基本颜色作为第一位数字,并为每个基本颜色生成K≤10个调色板,其中K是第二位数字可能取值的数量,然后再为第三和第四位数字重复此过程,直到所有节点根据其分层信息着色。绿色是一种类型,在其中特定的绿色色调定义了对应于视觉相似性的某些节点族。

似乎“相似”的颜色属性是我想要实现的。在HSV/HSL方案中是否只需定期拆分色调参数即可实现此目的,还是有更好的方法?

我将在Python中实现它,但任何算法基本上都应该与语言无关。


你能否提供一个更小的视觉示例,展示你想要实现的效果吗? - Richard
1个回答

0

我曾经处理过一个类似的问题(可能是你正在做的反向问题),我比较了各种图像的光谱输出,以确定它们的相似性排序。

在花费了数周时间调整RGB颜色立方体后,我放弃了并转向HSV - 从此再也没有回头。我会识别定义颜色的色调,然后基于此进行排列,这样您就不会有两种类似黄色的颜色 - 而是从x开始,然后添加k的倍数,这样您就会得到类似以下的结果:

x is red
x+k is yellow
x+2k is green
... so forth

在此基础上,我会将“值”和“饱和度”进行细分和可能的排列组合,以增加可用颜色的数量。

如果你最终需要在不同系统之间进行转换,我使用colorsys没有遇到任何问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接