使用D3创建圆圈时,是否可以创建一个组,以便在以后选择它们?例如,如果使用以下方法创建圆圈:
var dataset = [ [ 30, 50, 20],
[ 100, 50, 20],
[ 150, 50, 30]];
//Create SVG element
var svg = d3.select("#chart")
.append("svg")
.attr("width", 200)
.attr("height", 200);
// generate circles
svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle")
.attr("cx", function(d){
return d[0];
})
.attr("cy", function(d){
return d[1];
})
.attr("r", function(d){
return d[2];
});
我可以使用circle1
将第一个数组元素创建的圆圈标记为circle2
,将后两个圆圈标记为{{1}}吗?
答案 0 :(得分:4)
绝对 - 根据数据索引动态更新class属性:
.attr("class", function(d,i) {return i == 0 ? "circle1" : "circle2";});
然后使用指定的类来选择元素:
d3.select(".circle1"); //first circle
d3.selectAll(".circle2"); //second and third circles