0

http://bl.ocks.org/mbostock/4063570の例に基づいて、新しい JavaScript プロジェクトを開始しました。

これまでのところ、d3 Dendrogram のすべてが優れていますが、私のデータにはおそらく常に重複した葉 (端末ノード) が含まれていることを除きます。私のデータでは、葉だけが重複データを含むことができました。すべての内部ノード (ルートとリーフの間) は、d3 が機能するかなり前に厳密に区別されます。

ノード名 (d.name) に何かを追加して、各ノードを完全に一意にすることもできますが、可能であれば、リーフ ノードを「再利用」し、すべての内部ノードが 1 つのリーフをポイントして共有するようにします。

これを行う方法を知っている人はいますか?

よろしくお願いします!ドリュー・バーフィールド

4

1 に答える 1

0

D3 データ結合は、各 DOM ノードがデータ配列内の異なる要素に対応することを想定しています。ただし、データ配列内の 2 つの要素が同じ基になるオブジェクトを参照するのを止めるものは何もありません。

最終的には、デフォルトの結合キー (配列インデックス) で問題ないか、または特定のデータ要素を特定のノードにマッピングすることで、データ更新時に "オブジェクトの永続性" の感覚を実現したいかどうかにかかっています。これを実現するには、定義上、データ要素を区別する何らかの方法に依存するカスタム結合キー関数を定義する必要があります。

個人的には、入力/終了/更新を伴うデータ更新を行う場合、各データ要素が一意であり、使用できる何らかの「id」または「キー」プロパティを持っていると、作業がはるかに簡単になると思いますそれを識別するために。データ要素を再利用することは、価値があるよりも頭痛の種になる可能性があります。

データを共有することで何を達成しようとしているのか、実際には言及していませんか? それは単なるメモリ節約の最適化ですか、それとも別の理由がありますか? ただの記憶なら気にしない。

于 2013-10-31T05:28:22.833 に答える