私は、議会の過去のセッションから、上院の投票パターンの強制的なレイアウトを作成しました。102 のノードと 2,600 のエッジがあり、少なくとも 75% の確率で一緒に投票した 2 人の上院議員を接続すると、次のようになります。
ノードが密集しすぎたり、人為的に分離されたりしていないスイート スポットを見つけることを期待して、電荷、重力、およびリンク距離の係数をかなりいじりました。linkDistance を使用すると、2 つのクラスターを接続する 4 つの赤いノード間に、論理よりもはるかに多くのスペースが作成されます。linkDistance を設定しないと、2 つのクラスターが大きく離れてしまいます。
エッジ密度やその他のソーシャル ネットワーク分析指標に基づいて、適切な値を選択するためのガイドラインはありますか?
現在のレイアウト定義は次のとおりです。
var force = d3.layout.force()
.nodes(d3.values(nodes))
.links(d3.values(links))
.size([width - 2 * margin, height - 2 * margin])
.charge(-80)
.gravity(0.25)
.linkDistance(50)
.on("tick", tick)
.start();
ありがとうございました!
更新: これは jsFiddle で起動するのは少し複雑ですが、GitHub で自由にクローンまたはフォークしてください。