web-dev-qa-db-ja.com

D3.jsはNeo4j Graph DBデータのリアルタイム可視化に適切な選択ですか

私はUWのCSリサーチの学生です。私のグループは、neo4jグラフDBにリアルタイムで送られる特定のネットワークトラフィックを視覚化しようとしているところです。

私は、gephi、cytoscape、人力車(D3.jsに基づく)、その他のツール、D3.jsなど、さまざまなツールについて読みました。

これまでのところD3.jsを進めていますが、コミュニティの意見を聞きたかったのです。 neo4jが原因でサイトスケープを使用できず、D3.jsは高速のリアルタイム環境でセミラージデータを処理するのに最適です。

提案?

おそらく別の質問かもしれませんが、自由に入力してください:neo4jを実装する最良の方法? Java、Ruby、node.js?

ありがとうございました!

19
jhanna0188

私の理解:Gephiはリアルタイム更新ではうまく機能しません。通常は静的データで使用されます。

主な考慮事項の1つ-提示したい視覚化は何ですか?有向グラフですか?循環?加重?追加のラベル?

一部のツールキットは、表示できる内容が「修正」されていますが、グラフを簡単に表示できます。その他(d3など)は非常に拡張性が高いため、ほとんど何でも作成できます。

StackOverflow形式の目的で、システムの制限とニーズ(実際のデータレート、シン/シッククライアント、Vizのタイプなど)を特定できれば、より良い答えが得られる可能性があります。

9
cmonkey

この種の問題に対する特効薬の解決策はなく、そのほとんどは、あなたが何をしようとしているのか、チーム、および(お金と時間の)予算に依存します。

次のいずれかを満たす必要がない限り、D3はお勧めしません。

  • データを視覚化するまったく新しい方法を作成したい
  • あなたはあなたのチームに熟練した人々がいます-それはあなたかもしれません-D3で
  • 統合する他のD3ウィジェット/ Vizがすでにある

上記のエントリのいずれにも当てはまらない場合は、D3を脇に置いて、次の内容を確認するように指示します。

  • SigmaJS 、オープンソース、無料のJavaScriptライブラリ。
  • KeyLines 、商用Javascriptツールキット。
  • VivaGraphJS 、オープンソース、無料のJSライブラリ。

免責事項:私はキーライン開発者の一人です。

持っているデータのサイズに応じて、ライブラリの選択は変わる可能性があります。チャートに3/400以下のノードを配置し、特定のスタイリング/アニメーションを必要としない場合は、SigmaJSで十分です。キーラインは、このような状況を処理するように設計されており(インクリメンタルレイアウトを提供)、問題なく2000ノードまでスケールアップします。このサイズの側面にフィルターが必要です。

私はVivaGraphを最後の手段と名付けます。SigmaJSにはWebGLレンダラーもあり、より優れたレンダリングIMHOを提供します。
VivaGraphJSは間もなく ngraph に置き換えられます。これは、レンダリングに不可知なアプローチを使用します。PIXI、Fabric、または好きなものを使用できます。..

アセットを一度ロードして常に再利用する場合、WebGLレンダラーを使用することは理にかなっています。リアルタイムシナリオでチャート要素をスタイル設定している場合、Canvas IMHOには利点がありません。

12
MarcoL

レンダリングにwebglを使用し、より大規模なネットワークにも非常によくスケーリングするvivagraphを確認してください。彼らは本当に大きなもの(FB、Amazon)のためのいくつかの素晴らしい例を持っています。

http://github.com/anvaka/VivaGraphJS

8
Michael Hunger

D3はすばらしいと思いますが、最近、FOSDEMでSigma.jsに関する講演がありました。参照 http://thewhyaxis.info/hairball/

7
Peter Neubauer