从D3颜色范围返回单个值以创建图例

时间:2018-07-29 15:59:03

标签: javascript html d3.js charts

我有5种颜色的代码:

var color = d3.scaleQuantize()
    .range([
        'rgb(237,248,233)',
        'rgb(186,228,179)',
        'rgb(116,196,118)',
        'rgb(49,163,84)',
        'rgb(0,109,44)'
    ]);

我想获取这些值中的每个值,以便为图例着色。

我正在尝试类似的操作,但是它不起作用:

.style('fill', function (d, i) {
    return color.range([0]);
});

如何引用颜色范围内的每个项目,以便可以用这种方式为图例着色?

谢谢!

编辑:抱歉,我把用来测试代码的console.log文件留在那里,现在已更正。

2 个答案:

答案 0 :(得分:1)

您可以使用i的函数变量,这些i变量遵循顺序。 例如

.style("fill", function (d,i) {
                    return color(i);//or color.range(i);

答案 1 :(得分:0)

我想我明白了。如果在括号中输入数字,则d3.scaleQuantize()将返回一个值。但是,只是像常规阵列那样进行颜色处理就可以分别给我每种颜色,可以将其输入到图例中。

.style("fill", function (d, i) {return d};)