web-dev-qa-db-ja.com

大きなグラフを視覚化する

690,024ノードと7,398,042エッジのグラフがあり、それを視覚化したいと思います。 graphvizのdotとgephiを使用しましたが、メモリが少ないために両方とも終了します。この問題を修正する方法はありますか?

22
AliBZ

Gephiには、JVMで割り当てられたメモリの量に基づいた制限があります。これを確認してください http://gephi.org/users/requirements/ 変更を加えてください。
Stanford Network Analysis Platform(SNAP) を使用することをお勧めします。
コアSNAPライブラリはC++で記述されており、最大のパフォーマンスとコンパクトなグラフ表現のために最適化されています。
数億のノードと数十億のエッジを持つ大規模なネットワークに簡単に拡張できます。大きなグラフを効率的に操作し、構造プロパティを計算し、規則的およびランダムなグラフを生成し、ノードとエッジの属性をサポートします。大きなグラフへのスケーラビリティに加えて、SNAPの追加の強みは、グラフまたはネットワークのノード、エッジ、および属性を計算中に動的に変更できることです。

15
Zero

ほとんどのブラウザやノートブックからこれを実行できるように、 http://www.github.com/graphistry/pygraphistry を構築しています。アイデアは、WebGLを使用して大きなグラフ(パン/ズームなど)をレンダリングし、ほとんどのリアルタイム計算(レイアウト、フィルターなど)をGPUクラウドにオフロードすることです。 GephiやCytoscapeに似ていますが、大きなグラフへのスケーリングとデータ分析の合理化、およびWebアプリとノートブック環境への統合に重点を置いています。

4
Leo Meyerovich

このサイズのグラフのすべてのエッジ間の関係を視覚化する必要がある場合は、 ハイブプロット を検討することをお勧めします。ノードとエッジが表示されるグラフを作成する必要がある場合は、 igraph を試してみてください。これには、PythonとRインターフェイスがあります。いくつか作成しました。 igraphからRを使用した非常に大きなグラフですが、メモリ要件を思い出せません(これはおそらくデータに依存します)。

2
SES

LGLは、静的な視覚化のためにそのような場合に機能していました-少なくとも数年前:)

http://lgl.sourceforge.net/http://www.ncbi.nlm.nih.gov/pubmed/15184029?dopt=Abstract

私はそれを例えば図に使用しました: https://static-content.springer.com/image/art%3A10.1186%2F1471-2105-7-276/MediaObjects/12859_2006_Article_1015_Fig2_HTML.jpg

論文の内容: http://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-7-276 ノードとエッジの数が同程度のデータ。

1
MichalO