我有一个3个JSON对象的数组,我想在d3中绑定它们来制作一些矩形。然而, 而不只是通过一次数组,它经历了多次。我想知道这段代码是不是错了。
var w = 5000;
var h = 5000;
var svg = d3.select("body")
.append("svg")
.attr("width", w)
.attr("height", h);
var elem = svg.selectAll("g")
.data(dataset)
var elemEnter = elem.enter()
.append("g")
var rects = elemEnter.selectAll("rect")
.data(dataArr)
.enter()
.append("rect")
.attr("x", function(d, i) {
console.log(i);
return 75;
})
.attr("y", function(d, i) {
return (i * 50) + 25;
});
作为参考,这是我在控制台中打印出dataArr时的样子。 [对象,对象,对象]
非常感谢你的帮助。我试图理解为什么它在尝试创建rects时不止一次遍历数据。此外,这只是代码中的一部分。
答案 0 :(得分:1)
您可能会看到数据集中元素数量与dataAttr中元素数量的交叉积,因为上面的代码首先是绑定数据集:
var elem = svg.selectAll("g")
.data(dataset)
var elemEnter = elem.enter()
.append("g")
使用d3.js时,chrome'visit element'功能非常有用。