0

データドメインをデータ要素ごとに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つの選択肢の長所と短所は何ですか?

4

1 に答える 1

1

attrこれは、匿名関数で設定されている他のをコピーして貼り付けることとはおそらく残っている小さな違いだと思います(2番目の場合のように)。y匿名関数でラップする理由はないはずです。

于 2013-02-13T17:26:52.687 に答える