次の要件を持つネットワーク図に使用するオープンソースのJavaグラフ描画フレームワークはどれですか?グラフのノード数は1000未満になります。
1)平行なエッジがある
2)単一のグラフ内に有向および無向のエッジ
3)画像で表されるノード
4)ノードとエッジとのユーザーインタラクション
5)ノードとエッジの動的な追加/削除
6)ノードとエッジの複数のラベル付けラベル付けは、ユーザーがオフ/オンにすることができます。(レイヤーでの描画やレイヤーのオフ/オンなど)
7)スター、リング、メッシュトポロジを表示するためのさまざまなレイアウトアルゴリズム
JUNGとPrefuseを評価しました。これは、私の要件ごとに私が見つけたものです。
1)JUNGがサポートしている間、Prefuseは平行エッジを表示できません。プリフューズコードを操作して、平行なエッジを表示できますか?これには基本的なデータレベルの変更が含まれるため、通常のカスタマイズされたレンダリングの変更よりも難しいと思います。
2)prefuseとJUNGの両方で、結合されたグラフ(有向エッジと無向エッジの両方)への参照が見つかりませんでした。誰かが他のことを知っていますか?
3)これはPrefuseとJUNGの両方で簡単に思えます
4)ここでも、prefuseとJUNGの両方がユーザーインタラクションのサポートを提供します。
5)prefuseとJUNGの両方がそれをサポートします。グラフを再描画している間、各フレームワークはどのように機能しますか?別の投稿で、動的更新ではプリヒューズがうまく機能しないことがわかりました(Prefuse Toolkit:ノードとエッジを動的に追加します)
6)これは、グラフを変更して再描画することになります。したがって、質問は5)と同じになります。
7)JUNGとprefuseの両方に複数のレイアウトアルゴリズムがあります。しかし、JUNGとPrefuseの両方でFruchtermanReingoldLayoutを使用して同じデータセットを表示しようとすると、異なる表示が表示されます。なぜアイデアはありますか?PrefuseのレイアウトアルゴリズムのほとんどはJUNGの実装に基づいていますが、どういうわけか、PrefuseのレイアウトアルゴリズムはJUNGよりも優れたレイアウトを表示しているようです(レンダリングも優れていると思います)。ForceDirectedLayout / FruchtermanReingoldLayoutやCircleLayoutなどのプリフューズレイアウトは、スター、サークル、メッシュトポロジに直接マップされます。
これらの要件以外では、prefuseは式とクエリ言語を適切にサポートしていますが、JUNGとは異なり積極的に開発されていないようです。どちらがより良い視覚化を持っていますか?どれが適切であり、どのように欠点を克服するかについての提案はありますか?
私が使用できる他のフレームワークはありますか?