これは、d3.js を使用して折りたたみ可能なツリー レイアウトを作成するという私の取り組みの続きです。
フラット json から(マルチレベルの)flare.json データ形式を生成する
レイアウトは次のようになります: ( http://bl.ocks.org/mbostock/raw/4339083/ ) 約 3k ノード、一部のノードの深さは約 25 です。設定する必要があるキャンバスの現在のサイズは、幅 8000px、幅 8000px です。レンダリングされるツリー レベルの数が 2 または 3 の場合、すべてのノードが表示されるようにするための高さは適切ではありません。 (jsonファイル)が選択されています。
そのため、画面に表示されるノードの位置/ノード数に対してキャンバスのサイズを変更できるかどうか疑問に思っていました。このようにして、コードはより体系的で適応性が高くなります。
これを見た:
子ノードの数に基づいて d3 ツリー レイアウトのサイズを動的に変更します
ただし、これによりツリーのサイズが変更されます。これは、約 3k ノードのツリーの場合を想像すると、読みにくく、理解しにくくなります。
これは d3.js とは関係ないかもしれませんが、問題を説明するためにタグを付け、同様の状態に直面した可能性のある d3 の専門家も連れてきました。
また、実際のデータよりも少ない数のノードをレンダリングするために、私の基準に基づいて有益でないノードを除外しようとしています。(ツリーが大きいとパフォーマンスの問題が発生することはわかっています)。どんな助けでも大歓迎です。
注: キャンバスと言うときは、「キャンバス」ではなく、木が描かれている領域を意味します。専門用語がよくわからないので、読み飛ばしてください。