使用D3选择圆的子集

时间:2012-08-12 22:09:23

标签: javascript d3.js

使用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}}吗?

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