Javascript 从D3颜色范围返回单个值以创建图例
我有5种颜色的代码:Javascript 从D3颜色范围返回单个值以创建图例,javascript,html,d3.js,charts,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
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文件放在那里了,现在已更正。我想我找到了答案。如果在括号中输入一个数字,scaleQuantize()将返回一个值。然而,仅仅是像一个常规数组一样对颜色进行处理,就可以将每个颜色分别呈现给我,这些颜色可以输入到图例中
.style(“fill”,function(d,i){return d};)
您可以使用函数变量i,这些i变量遵循顺序。
比如说
.style("fill", function (d,i) {
return color(i);//or color.range(i);
谢谢你,我同时也想到了!显然我把它复杂化了。