2017-02-10 1 views
1

Вот мой код:Как использовать функции d3-scale-chromatic с доменом, отличным от [0, 1]?

var color = d3.scaleLinear() 
    .domain([0, 10000]) 
    .interpolate(d3.interpolateBlues); 
console.log(color(5000)); 

Вместо того, чтобы говорить мне, что соответствует 5000 светло-голубой, я получаю ошибку «r0 не является функцией». Что я делаю не так?

ответ

1

Хорошо, понял. Если используется функция, такая как d3.interpolateBlues, которая определяет сам диапазон, вместо d3.scaleLinear следует использовать d3.scaleSequential. Правильный код:

var color = d3.scaleSequential(d3.interpolateBlues) 
    .domain([0, 10000]) 
console.log(color(5000)); 

См https://github.com/d3/d3-scale#sequential-scales

+0

Спасибо за это - я нуждался в этом, а также. Вы должны принять его как ответ, так как большинство людей просматривает выделенный ответ для решения. – absmiths

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