だから私はすでにここに示されているような力指向グラフを描くページを持っています。
そして、それはうまくいきます。ここからJSを使用していますが、ノードを少しうまく広げるためにいくつかの調整を加えています。
これらは多かれ少なかれ唯一の違いです:
d3.json("force.json", function(json) {
var force = d3.layout.force()
.gravity(0.1)
.charge(-2000)
.linkDistance(1)
.linkStrength(0.1)
.nodes(json.nodes)
.links(json.links)
.size([w, h])
.start();
リンクの強度を下げると、リンクがバネのようになり、よく使用されるFruchterman&Reingoldの手法に似たものになります。これはかなりうまく機能しますが、かなり小さいグラフの場合のみです。グラフが大きくなると、交差点の数が増えるだけです。予想どおりですが、通常、グラフが到達するソリューションは最適とはほど遠いものです。私は最適な解決策を得る方法を探していません、それは非常に難しいことを知っています。ノードだけでなくラインも強制的に離そうとする大雑把な追加が必要です。
リンク間およびノード間に反発を追加する方法はありますか?私はD3フォースの仕組みに精通しておらず、これが可能であると言っているものを見つけることができないようです...