d3色标 - 多种颜色线性?

时间:2014-04-06 12:06:30

标签: colors d3.js

我尝试创建的东西有点像量化比例,但就像线性色标一样?

当我尝试将多种颜色放入线性刻度时,它似乎只能在前两种颜色之间缩放。

我喜欢多种颜色,如量化比例,但在这些颜色之间褪色。我不确定这是否可行。

//red and green works ok
var color = d3.scale.linear()
            .range(['red','green']);

//doesn't work - only red and green show
var color = d3.scale.linear()
            .range(['red','green', 'blue']);


//red green and blue show, however it doesn't fade between the colors
var color = d3.scale.quantize()
            .range(['red','green', 'blue']);

1 个答案:

答案 0 :(得分:25)

您必须使用域名' pivot'价值如:

d3.scale.linear()
    .domain([0, pivot, max])
    .range(['red', 'green', 'blue']);

来自documentation for continuous scale domains

  

虽然连续比例通常在其域和范围中各有两个值,但指定两个以上的值会产生分段比例。例如,要创建一个发散的色阶,在白色和红色之间插入负值,白色和绿色插入正值,请说:

var color = d3.scaleLinear()
    .domain([-1, 0, 1])
    .range(["red", "white", "green"]);

color(-0.5); // "rgb(255, 128, 128)"
color(+0.5); // "rgb(128, 192, 128)"