我正在d3js画一个甜甜圈。我在数组数据集中有三个值(例如totalpop,ruralpop,urbanpop -----> [1000,2000,3000])。我希望这些值用甜甜圈中的特定颜色填充(例如totalpop - 红色, ruralpop - blue,urbanpop-orange)
以下是我在代码中尝试过的内容
var color = d3.scale.ordinal()
.domain([totalpop,ruralpop,urbanpop])
.range(["red","blue","orange"]);
var dataset = [parseInt(totalpop),parseInt(ruralpop),parseInt(urbanpop)];
var arc = d3.svg.arc()
.innerRadius(r-20)
.outerRadius(r);
var pie = d3.layout.pie()
.value(function(dataset){return dataset;});
颜色追加的主要代码
var arcs = groupx.selectAll(".arc")
.data(pie(dataset))
.enter()
.append("g")
.attr("class","arc");
这里我为路径添加了颜色
arcs.append("path")
.attr("d",arc)
.attr("fill",function(dataset){return color(dataset.data)});
答案 0 :(得分:0)
我找到了解决方案,就在这里,而不是在最后添加我在创建时添加了路径的颜色
var color = d3.scale.ordinal()
.domain(parseInt(totalwater),parseInt(ruralwater),parseInt(urbanwater))
.range(["red","blue","orange"]);
var arcs = groupx.selectAll(".arc")
.data(pie(dataset))
.enter()
.append("g")
.attr("class","arc")
.attr("fill",function(dataset,i){return color(i)})
arcs.append("path")
.attr("d",arc)