我不确定我是否正确分组了我的元素,但我在 d3 中的布局是这样的:
var circleGroup = svg.selectAll("g")
.data(nodeList)
.enter()
.append("g")
这会创建一堆组,我需要在每个组中创建一个圆圈:
circleGroup.append("circle")
.attr("cx", function(d,i){
return coordinates[i][0];
})
.attr("cy", function(d,i){
return coordinates[i][1];
})
.attr("r", function(d){
return 10;
})
.attr("fill", "white");
数据本身实际上没有任何坐标数据,所以我动态地将它们排列成一个圆圈,并根据索引定位它们。我还添加了一些标签。我在这里重复坐标[i][0],但是有没有办法访问圆圈的“cx”和“cy”属性?我尝试了几种形式的 d3.select(this) 但我什么也没得到。
circleGroup.append("text")
.attr("x", function(d,i){
return coordinates[i][0];
})
.attr("y", function(d,i){
return coordinates[i][1];
})
.style("text-anchor","middle")
.text(function(d,i){
return d;
});