私はこのチュートリアルを使用して、いくつかの基本的なd3を学習しています。
私は「バインディングデータ」セクションにいますが、これまでのところかなり混乱しています。
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を掛けるとは何ですか? - データセット内のすべてのポイントを自動的にループしますか?最終的なコードチャンクでは、反復がないように見えるので、すべてのデータ要素に対してこれを行うだけだと思いますか?
混乱している!