2014-11-05 162 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