11

グラフに関するいくつかの 提案を見て、私の問題に最適なものは何だろうと思いました。

ブラウザーに表示されるサーブレット/画像に有向グラフをレンダリングしたいと考えています。ある種の位置の最適化が必要です。Swing に依存しないことが推奨されます。グラフの構造はビジネス ロジックによって決定されるため、アルゴリズムは重要ではありません。エッジにもラベルを追加できることが望ましいでしょう。これをpng/svgとして提供できれば最適です。

どのライブラリ/サービスをお勧めしますか?

説明:

1) 質問は、グラフのような有向非巡回グラフ- NOT -チャートに関するものです。

2) flot、Google Charts - グラフをプロットできない、グラフしか表示できない、または何かを見逃したことがありますか?

3) いいえ、双方向性は必要ありません

4) graphviz があればいいのですが、grappa Java ライブラリはかなり時代遅れで、swing/awt に基づいて構築されています。スイングを画像にレンダリングすることは理論的には可能かもしれませんが、サーバー アプリで行うのは私の好みの方法ではありません。

5) 画像がローカルでホストされていないオンライン サービスを使用しても問題ありません。

編集: ウィキペディアへのリンクを追加して、グラフ/チャートの用語を明確にしました

4

16 に答える 16

6

これにはyFilesが役立つ場合があります。

于 2009-02-28T19:27:01.463 に答える
5

Graphvizのドットコンポーネントはどうですか?グラフ(チャートではない)を生成し、PNGおよびSVGに出力し、エッジのラベル付けをサポートします。ドットにシェルアウトして必要な画像を生成し、それを参照するimgタグを返すことができます。または、必要なグラフを生成する(またはキャッシュされたコピーを取得する)URLを参照するimgタグを返すこともできます。ドット情報は次のとおりです。

http://www.graphviz.org/pdf/dotguide.pdf

また、この目的のために設計されたと思われるWebDotもご覧ください。

http://www.graphviz.org/webdot/

于 2009-02-25T16:34:10.670 に答える
3

サーバーサイドの場合は、 JUNGを試してください。Batikに対して実行して、美しいSVGまたはPNGファイルを作成できます。JUNGは素晴らしいデザインと非常に強力なレイアウトアルゴリズムを持っています...

また、 「オンラインサービスを利用すればいい」とおっしゃっていたので、graphvizはグラフをレンダリングするためのwebdotというサービスを提供しています。

この線に沿って他にもあります...例えばhttp://graph.gafol.net/(ダウンしているようです)

クライアント側:

于 2009-07-23T12:33:52.580 に答える
3

そのような要件のためにmxGraphを作成します。実際にリリースしたのは 2006 年ですが、この質問に気付くまでに時間がかかりました...

于 2013-01-23T20:02:07.597 に答える
3

1 行のコードですべての問題を解決する Magic Framework について聞くのを何週間も待つだけでなく、自分でコードを書いて、自分がやりたいことを正確に行うという別のオプションもあります... (私はそうではありません) 10 分の作業だと言っていますが、おそらく 1 日か 2 日かかります。質問を投稿したのは 2 週間以上前です...)

たとえば、Force ベースのアルゴリズムに関するウィキペディアのエントリをご覧になったことはありますか?疑似コードと役立つリンクがいくつかあります。

問題はレイアウト アルゴリズムであり、BufferedImage を作成し、そのグラフィックス コンテキストに描画し、PNG エンコードしてソケットに送信する問題ではないと想定しています。そのビットのフレームワークは本当に必要ないと思います。

于 2009-03-03T00:18:36.800 に答える
3

aiSeeを試してください。これは、データ マイニング静的プログラム分析行列の視覚化ネットワーク分析など、あらゆる種類の Web ベースのアプリケーションで使用されます。一部のMediaWikiでは、グラフ レイアウト バックエンドとしても使用されています。

aiSee.comにはサンプル グラフの膨大なデータベースがあります。見てみな。エッジ ラベル、マップされた SVG および HTML へのエクスポートをサポートし、Swing に依存しません。

于 2009-02-20T20:58:54.710 に答える
2

sigma.jsを試すことができます:http ://sigmajs.org/

これは、Web上に大きなグラフを表示するためのJavascriptの軽量なオープンソースライブラリです。

于 2012-04-25T22:35:19.157 に答える
2

興味深いことに、Eclipse プロジェクトには、純粋な Java で Graphviz の「DOT」形式を表示および生成 (インポート/エクスポート) できる SWT/JFace コンポーネント/フレームワークがあります。

ZEST (ホームページとダウンロードリンク)

使用例については、 http://wiki.eclipse.org/Graphviz_DOT_as_a_DSL_for_Zestを参照してください。

ZEST は Eclipse プラグインとしてもてはやされていますが、DOT 操作 API はスタンドアロンで、Eclipse インストールの外部で使用できるようです。

乾杯

リッチ

于 2011-11-06T23:44:23.593 に答える
1

だから私は与えられたすべての答えとリンクを見てみました.Prefuse / Flareは最適な選択になるようです. 非常に魅力的な視覚化があり、さらにグラフのサポートが組み込まれています。

于 2009-03-02T23:15:56.077 に答える
0

SVG は Batik と組み合わせて使用​​できます。グラフィックを表示するためにこれを数回使用しました。Java 1.5 を使用した Batik は非常に高速です。このソリューションを使用すると、Swing に依存せずに Java でグラフをプログラミングできます。必要な場所にラベルを追加し、サーブレットとしてホストして、png または svg として表示できます。

グラフは SVG で作成できます (これは XML ドキュメントです)。Batik
を 使用して、SVG ドキュメントを PNG/JPG 画像に変換します。 サーブレットを使用して、この画像をブラウザにストリーミングできます。

Java では、SVG(=XML) ドキュメントを作成します。SVG グラフのサンプルは、 有向グラフと単純な有向グラフにあります。

于 2009-02-25T17:03:01.117 に答える
-2

JFreeChartはあなたが行きたい方法かもしれませんが、チャートとグラフを区別します。それが何を意味するのか説明できるかもしれません。私は通常、これらの用語を同義語として使用してきました。:)

JFreeChart には、優れた散布図、棒グラフ、折れ線グラフ、および Pie や Dial などの楽しいグラフが用意されているので、うまくいくかもしれません。

于 2009-02-25T14:38:45.050 に答える