[英]3 color dimensions with Google Visualization Geochart Color Scale
我的数据有三个不同的“向量”。 对于数据中的每一行,我都有像狗一样的百分比,像猫一样的百分比以及其他宠物一样的百分比。
A 20, 40, 40
B 10, 20, 70
C 80, 0, 20
D 90, 10, 0
...
我想使用Google Visualization Geochart根据喜欢的宠物用颜色表示国家/地区。 我想通过分配RGB值来做到这一点,具体取决于该国某类宠物的百分比。
因此100、0、0将是100%红色。 0、100、0将是100%绿色。 0、0、100将是100%蓝色。 介于两者之间。
如果手动编码颜色,则使用javascript这样的代码很容易。 我的问题是,每一行都会有不同的组合(我有很好的关于宠物偏好的数据,低至几个小数点),这将要求我为每行分配一个颜色值,我大约有200其中。
尽管这是不得已的方法,但我还是更愿意使用Geochart内置的渐变为我完成繁重的工作。
问题在于颜色渐变仅允许2d渐变。 我可以有多个渐变,但是我无法确定是否仅使用2d渐变就可以表示3d色彩空间。
因此,我可以为以下项创建渐变:
这将涵盖可能的颜色范围,还是仅让我控制色相,而不是饱和度或亮度? 这可行吗,或者我只是更好地解决了吗?
我结束了手动操作,因为它非常容易。 我最终得到了4个矢量作为数据,因此我使用CMYK颜色模型为它们着色。 对于每个向量,我都将百分比计算为颜色的C,M,Y或K分量的一部分。
然后,我使用以下逻辑(伪代码)将其转换为RGB:
C' = C * (100% - K) + K
M' = M * (100% - K) + K
Y' = Y * (100% - K) + K
R = 255 - 255 * C'
G = 255 - 255 * M'
B = 255 - 255 * Y'
我将它们转换为HTML颜色代码,并将它们扔进一个数组中。 然后,我为与该元素colorAxis.colors
的数组中的元素对应的每一行分配一个值,并将其扔到选项的colorAxis.colors
部分中。
结果是令人难以置信的可怕,并且作为一种传达信息的方式是完全不切实际的。 不仅颜色令人讨厌(青色,洋红色和黄色不是很好的颜色组合),而且除非您是真正的颜色专家(我的观众不是),否则您真的无法分辨混合的含义。
回到绘图板!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.