D3 ツリー レイアウトを使用して家系図を作成しようとしていますが、多くの子ノードがある場合、画面全体に水平に広がることに気付きました。理想的には、これらのノードをより垂直にレイアウトして、ユーザーが画面をスクロールする必要がなく、ツリーを見下ろし続けることができるようにしたいと考えています。
これが私が現在見ているものです:
今はそれほど悪くはないかもしれませんが、20 人の子供がいるとしたら、画面全体に広がってしまうので、それは避けたいと思っています。
このような質問を見たことがありますが、単純なサイズ変更ではなく特定のレイアウトが必要なため、これは役に立ちません...大きなノードがあり、ツリーを動的にサイズ変更しようとすると、それらが互いに衝突し始めます-縮小木は私に何の役にも立ちません。特定の数を超える子供がいる状況では、別のレイアウトが特に必要です。
これが私が思い描いていた/望んでいたもののようなものです。ルートには 4 つの子しかないため、この形式は作成されないことに注意してください。理想的には、親に 5 人以上の子がいる場合、以下のレイアウトになるようにしたいと考えています。ルートに 5 つの子がある場合、このレイアウトになり、ユーザーがルートの孫 (A、B、C... ノード) を表示したい場合、レイアウトは単純に縦に引き伸ばされます。必要に応じて、その進行状況の図を取得できます。
カスタムの子レイアウトに関する似たような質問を見つけたのですが、彼は実際の d3js コードをいじる必要があると言いました。私はこれを避けたいので、現在のd3jsでこれが可能かどうかを知りたいと思っています。完全な回答は必要ありませんが、これが可能であることを証明するコードのスニペットは非常に役立ちます。
必要に応じて、人々が遊んでもらえるように JSFiddle をアップロードできます。