27

Pythonを使用してDjangoWebアプリケーションでいくつかのインタラクティブなグラフの視覚化を行おうとしています。Graphvizを見つけ、Pydot(Graphvizのドット言語へのPythonインターフェイス)を使用して、アプリケーションで静的グラフを(.png画像として)出力することができました。

ただし、マウスをその上に置いたときにノードを強調表示できるようにしたり、ノードをクリック可能にしたり、ノードを別の場所にドラッグしたり、グラフをズームしたりするなど、グラフをよりインタラクティブにすることを目指しています。

Graphvizでこれを行う方法はありますか?または、一般的に、Flashを使用せずにDjangoアプリケーションのインタラクティブなグラフを作成する方法はありますか?私はフラッシュにあまり詳しくないので、またかなり大きなデータセットを視覚化したいので、フラッシュを使用したくありません。

4

6 に答える 6

18

JavascriptInfovisToolkitをお試しください。すべてブラウザキャンバスに実装されているため、Flashは必要なく、<canvas>タグをサポートする適切なブラウザのみが必要です。グラフの視覚化の例はここここここにあり、他のデモはここにあります。

于 2011-05-16T17:50:21.843 に答える
12

Canvizソース)があります。ただし、ノードはまだクリックできません(以前のバージョンではイメージマップを使用していました。コードベースが変更され、JavaScriptを使用してクライアント側でレンダリングが行われるようになりました。そのため、クリック可能なリンクはまだ有効になっていません。

これは私が見つけた最高のものですが、他にもたくさんあります。

mxGraph(無料ではありません)

于 2011-05-16T17:09:45.000 に答える
9

グラフの視覚化にD3.jsを使用できます( D3jsでのグラフの視覚化の例については、ここを参照してください。インタラクティブなネットワークの視覚化を作成する方法を参照してください)。

バックエンドの場合(グラフを表すためにjsonファイル以外のものが必要な場合、つまりグラフが大きい場合)、グラフ用のPythonモジュールNetworkXを使用できます。

ちなみに、これが私の単純なインタラクティブなグラフ視覚化の例です:

ここに画像の説明を入力してください

于 2013-04-19T13:57:24.563 に答える
3

DOTとHTMLを使用するだけで、このようなことを非常に簡単に行うことができます。

クライアント側のマップを生成し、PNG画像にオーバーレイします。(マップコードをHTMLページに挿入します。)

dot test.dot -Tpng -o test.png -Tcmapx -o test.map

SVGエクスポートは直接クリック可能です。

于 2013-09-24T10:39:04.477 に答える
1

あなたがやろうとしていることに合うアプローチは、ブラウザやjavascriptでsvgを使用することかもしれないようです。最近のブラウザのほとんどはSVGをサポートしており、かなりクールなインタラクティブグラフを作成できると思います。サーバーは、グラフのレンダリングに必要なデータポイントのjsonフィードを提供できます。利用可能なツールをすぐに知ることはできませんが、クライアント側のアプローチを通じてフラッシュなしで構築されたかなりクールなグラフのデモを見てきました。

別の方法として、ユーザーが表示する可能性のある一連のグラフ画像を事前にレンダリングしてから、ユーザーがグラフを操作するときにそれらをフェッチすることもできます。これは、グラフがそれほど頻繁に変更されない場合、およびユーザーが行う変更の数が少ない場合に機能する可能性がありますが、グラフが変更されるたびに再レンダリングする必要があります。

于 2011-05-16T17:13:01.473 に答える
1

私はあなたがやろうとしていることを少し前にやった。コンテキストは、厄介なSalesForceスキーマを視覚化することでした。

まず、graphvizはプロットにのみ適していますが、実際には描画には適していません。SVGを生成することはできますが、かなりの(無益であることが判明した)努力の結果、IEでSVGを動作させることができませんでした。

私はこのJavaアプレットZGRViewerで十分だと思いました。アプレットは私の好みに少し古くなっているように感じますが、クロスブラウザでは非常にうまく機能しました。

私は基本的に、ドットファイルを生成し、それらを考えて実行するプロセス呼び出しサービスを手動でコーディングしました(dotty、そうですか?)-visulazationアプレットはネイティブのドットファイル形式を読み取ります。

私はまた、V2について考えた何かに出くわしました(これは決して起こりませんでした)-それはAJAX制御ツールキットの一部です-Seadragon

ASP.NETでコードを確認したい場合は、投稿できます。

于 2011-05-16T17:25:52.527 に答える