2014-11-05 205 views
1

我正在寻找一种方法来更改d3.js中不同类别的默认颜色。更改默认d3.js颜色

我发现在主d3.js中布置颜色的地方。他们看起来像这样一类:

var ml = [2062260, 16744206, 2924588, 14034728, 9725885, 9197131, 14907330, 8355711, 12369186, 1556175].map(yt) 

我已经试过一切从十六进制代码HSL到RGB更换这些价值和它从来没有产生预期的颜色。

任何想法如何我可以生成适当的数字为我想要的任何颜色?

谢谢。

回答

3

首先,仅供参考,看到RGB对应于这些数字(即十六进制)值:要转换为数字

(2062260).toString(16); // 16 for hex, aka base 16 
> "1f77b4" 

下,给定一个RGB(再次,十六进制):

parseInt("1f77b4", 16); // 16 for hex 
> 2062260 

这就是你想要使用的数字。

您从d3源获得的颜色用于构建您从d3.scale.category10()获得的结果。你可以得到同样的事情,但有自己的颜色 - 而无需修改D3的源代码 - 通过构建d3.scale.ordinal

var myCategory3 = d3.scale.ordinal() 
    .domain(["red", "#1f77b4", "rgb(128, 255, 128)"]);// All kinds of colors are possible 

myCategory3("X");// "red" 
myCategory3("blabla");// "#1f77b4" 
myCategory3("X");// "red" 
myCategory3(123456);// "rgb(128, 255, 128)" 
+0

谢谢......这正是我需要的。无法弄清楚如何转换它。感谢帮助。 – jonmrich 2014-11-05 19:50:57