質問
私はフォース指向のレイアウトでグラフを描画していますが、問題は、作成されたグラフがランダムかつ予測不可能に配向されているため、それらをいくらか混乱させることです。たとえば、ノードAが2つの別々のグラフG1とG2のメンバーであると仮定します。フォース指向のレイアウトを使用すると、ノードAはG1の左側になりますが、G2の右側にあります。
これで、グラフレイアウトアルゴリズムが適用された後、決定論的な方法でグラフを自動的に回転させることにより、混乱を減らしようとしています。 1つを計算できます 最小境界長方形 この場合、回転アルゴリズムに頂点とエッジに関する追加情報の一部を含めることができれば、それはより良いでしょう。
この場合、各頂点はタイムスタンプと単語数を含むドキュメントであり、エッジはドキュメント間の無向および指示的な関係を表しています。おそらく、古いドキュメントが左に集中し、右側に新しいドキュメントが集中するようにグラフを回転させる方法があるでしょうか?リンクと同じ:矢印は左よりも右を指す必要があります。これは合理的なアプローチのように聞こえますが、このようなものを計算する方法がわかりません(そして、Googleも本当に役立ちませんでした)。
ノート:
- 回転の世話をするグラフレイアウトアルゴリズムがあると思いますが、フォース指向のレイアウトを含むソリューションを好みます。
- ユーザーが手でグラフを回転させることもできますが、これにはグラフの向きを保存する必要があります。これは避けたいものです。ドキュメントデータベースにはこの余地がないためです。
解決
どちらかを使用できます
- フレーム間のユーザーのメンタルマップを保存する動的な力指向アルゴリズム(例:グラフの描画の動き、ジャーナルオブグラフアルゴリズムとアプリケーション(JGAA)、6(3)、353–-370、2002)、または
- Procrustes分析 「ランドマークポイント」の相対的な位置が保存されるように、フレームを翻訳、回転、スケーリングします。
他のヒント
シードを使用して乱数を生成するレイアウトを使用できます。試してみてください Yifan Huマルチレベルアルゴリズム の ゲフィ.
所属していません StackOverflow