2014-11-05 3 views
1

Я искал способ изменить цвета по умолчанию для разных категорий в d3.js.Изменить По умолчанию d3.js colors

Я нашел, где цвета расположены в главном d3.js. Они выглядят, как это для одной категории:

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

Я попытался заменить эти значения все от кодов Hex до HSL в RGB и он никогда не дает ожидаемых цветов.

Любые идеи, как я могу генерировать правильные числа для любых цветов, которые я хочу?

Спасибо.

ответ

3

Во-первых, просто FYI, чтобы увидеть RGB значение (т.е. HEX), что соответствует этим номерам:

(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

Смежные вопросы