2

私はd3.jsを使用してグラフを視覚化しようとしていました。バンドルラジアルとフォースの2つのレイアウトを試しました。

すべてのノードに親ノードが必要であり、グラフの視覚化には適していないため、バンドルラジアルは機能しませんでした。

強制レイアウトの場合、スクリプトがハングします。このグラフには多くのノードとエッジがあるためかもしれません。また、力のレイアウトに付属しているシミュレーションは必要ありません。

私が使用してみることができるd3.jsの他のレイアウトはありますか?

4

1 に答える 1

4

シミュレーションが必要ない場合は、フォースレイアウトを静的に使用できます。force.startを呼び出した後、 force.tickを数回呼び出し、続いてforce.stopを呼び出してシミュレーションを停止します。

// Run the layout a fixed number of times.
// The ideal number of times scales with graph complexity.
// Of course, don't run too long—you'll hang the page!
force.start();
for (var i = n; i > 0; --i) force.tick();
force.stop();

場合によっては、ノードの位置を決定論的に初期化して、シミュレーションが適切なソリューションにすばやく収束するように促すことが役立つ場合があります。位置を初期化しない場合、強制レイアウトはそれらをランダムに初期化するため、少し予測できない可能性があります。たとえば、ここでは対角線に沿ってノードを初期化します。

// Initialize the positions deterministically, for better results.
var n = nodes.length;
nodes.forEach(function(d, i) { d.x = d.y = width / n * i; });

最後に、静的レイアウトを使用している場合は、魚眼レンズの歪みを使用してインタラクティブな探索を可能にすることを検討してください。

于 2012-04-11T15:59:33.003 に答える