私は d3 を初めて使用し、Scott Murray による「Interactive Data Visualization for the Web」を使用しています (これはすばらしいことです)。これまでに見たものはすべて説明どおりに機能しますが、新しい要素を作成する手順を見ると、何かが混乱しました。簡単な例 (Scott Murray から):
svg.selectAll("circle")
.data(dataset)
.enter()
.append("circle");
この名前"circle"
は、空の選択を返す に使用されselectAll
ます (私が学んだように、これは問題ありません)。次に、同じ名前を に入れることで円が追加され.append
ます。すごい!
私が混乱したのは、同じことをもう一度やりたいときに何が起こるかということでした. 2 番目のデータセットがあり、同じ方法で新しい円を生成したいとします。データセットを置き換えるだけの同じコードを使用してもselectAll("circle")
、空の選択が返されなくなるため、明らかに機能しません。だから私は遊んで、私はで任意の名前を使用できることを発見し、次のselectAll
ように空のままにすることさえできます:selectAll()
Scott Murray の例では、データセットごとに常に 1 つのタイプ (円、テキストなど) を使用します。最後に、公式の例で次のようなものを見つけました
svg.selectAll("line.left")
.data(dataset)
.enter()
.append("line")
.attr ...
svg.selectAll("line.right")
.data(dataset)
.enter()
.append("line");
.attr ...
ここで私の質問: このエントリはselectAll("ENTRY")
実際にどのように使用されていますか? 後でそれらの要素を何らかの方法で再度参照するために利用できますか?それとも、実際には任意の方法で選択でき、空の選択を返す必要がある単なるダミーの名前ですか? 結果のDOMまたはオブジェクト構造のどこにもこのエントリが見つかりませんでした。
私を混乱させてくれてありがとう。