我在“绑定数据”部分,到目前为止证明相当混乱。
var dataset = [],
i = 0;
for(i=0; i<5; i++){
dataset.push(Math.round(Math.random()*100));
}
alert("Data: " + dataset)
var sampleSVG = d3.select("#viz")
.append("svg:svg")
.attr("width", 400)
.attr("height", 75);
sampleSVG.selectAll("rect")
.data(dataset)
.enter().append("svg:rect")
.style("stroke", "gray")
.style("fill", "white")
.attr("height", 40)
.attr("width", 75)
.attr("x", function(d, i){return i*80})
.attr("y", 20);
我的问题是:
- 我们创建了一个包含 5 个随机数的数据集。为什么这些没有反映在矩形的宽度上?
.append("svg:svg")
没有引用任何矩形,那么selectAll("rect")
如果它们甚至不存在我们怎么能做到呢?- 在匿名函数中,
d
指的是什么? - 在匿名函数中,
i
指的是什么?它乘以80是多少? - 它会自动循环遍历数据集中的所有点吗?在最终的代码块中,似乎没有任何迭代,所以我猜它只是对每个数据元素都这样做?
如此迷茫!