データドメインをデータ要素ごとに20pxの範囲帯域に変換するyスケールがあるとします。
var y = d3.scale.ordinal()
.domain(data)
.rangeBands([0, 20 * data.length]);
私は通常、このスケールを使用して、次の方法で何かのy座標を決定します。
svg.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("y", y)
しかし、いくつかのチュートリアルでは、別の構文を見てきました。
.attr("y", function(d) { return y(d); })
ここで何が起こっているのかわかりません。D3の学習に進む前に、それを理解したいと思います。私y
は関数であることを知っているので、d
括弧内はその関数の引数になります。ただし、y関数で入力されたデータはすでに指定されています。私たちが実際に行っていることの説明を読みたいと思いますy(d)
。2つの選択肢の長所と短所は何ですか?