2015-04-29 4 views
0

Я использую следующий код, чтобы получить разные цвета, используя d3.scale.category10(). Вот мой код:Получение одинакового значения от функции javascript

function getDrawColor(i) 
{ 
    var colors = d3.scale.category10(); 
// for(var j=0;j<5;j++) 
// { 
//  alert(colors(j)); 
// } 
      return colors(i); 
} 

Когда я пытаюсь напечатать цвета с помощью цикла комментариев, я получаю разные цвета. Но когда я вызываю этот метод с разными значениями i, я всегда получаю тот же цвет (например, цвет (0)), независимо от значения i. Я печатал значение i, нет проблем, но я всегда получаю первый цвет.

ответ

-1

Проверить эту ссылку, это может быть, поможет вам: http://www.jeromecukier.net/blog/2011/08/11/d3-scales-and-color/

Этот раздел может помочь вам:

Цветовая палитра

В отличие от protovis, которые имели их под pv.Colors - т.е. ру .Colors.category10(), в d3, встроенные цветовые палитры можно получить через шкалы. Ну, даже в протовицах они были порядковыми масштабами, но не назывались так. В протовисе есть 4 встроенных цветовых палитры: d3.scale.category10(), d3.scale.category20(), d3.scale.category20b() и d3.scale.category20c().

Палитра типа d3.scale.category10() работает точно так же, как порядковый масштаб.

var p=d3.scale.category10(); 
var r=p.range(); // ["#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", 
        // "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf"] 
var s=d3.scale.ordinal().range(r); 
p.domain(); // [] - empty 
s.domain(); // [] - empty, see above 
p(0); // "#1f77b4" 
p(1); // "#ff7f0e" 
p(2); // "#2ca02c" 
p.domain(); // [0,1,2]; 
s(0); // "#1f77b4" 
s(1); // "#ff7f0e" 
s(2); // "#2ca02c" 
s.domain(); // [0,1,2]; 

Стоит отметить, что в d3, цветовая палитра возвращаемые строки, а не pv.Color объекты, как в protovis. также:

d3.scale.category10(1); // this doesn't work 
d3.scale.category10()(1); // this is the way. 
+0

Хотя эта ссылка может ответить вопрос, лучше включить здесь основные части ответа и предоставить ссылку для справки. Ответные ссылки могут стать недействительными, если связанная страница изменится. – Jost

+0

Добавлен раздел, который может быть полезен. –

1

Заявляет, что цвета в глобальном, и использовать его внутри функцию ПОЛУЧИТЬ, как показано ниже

var colors = d3.scale.category10(); 
function getDrawColor(i) 
{ 
    return colors(i); 
} 

Надеется, что это будет работать для вас ...

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