web-dev-qa-db-ja.com

PythonからGephiネットワークグラフを作成する方法

GephiStreamerについて知りました。 https://pypi.python.org/pypi/GephiStreamer

このパッケージを使用すると、python=)からGephiに指示を送信して、Gephiでノードとエッジを作成できます。

# Create a node with a custom_property
node_a = graph.Node("A",custom_property=1)

# Create Edge 
Edge_ab = graph.Edge(node_a,node_b,custom_property="hello")
stream.add_Edge(edge_ab)

同様に、Pythonを通じてGephiですべてを実行したいと考えています。これが私が通常行うことです。

例:

手順:

  1. ノードの読み込み

  2. エッジをロード

  3. 中心性を計算する

  4. 中心性スコアに従ってノードのサイズ/色を変更する

  5. グラフのレイアウトを変更する(forceatlas2など)

  6. 出力グラフを与える

以下は手動で取得した出力ですが、pythonからGephiに指示を送信することによって同じ出力を生成します。ドキュメンテーションはノード、エッジ、グラフの作成以外には何も伝えていません。

NetworKitについても知りました。 https://networkit.iti.kit.edu/data/uploads/docs/NetworKit-Doc/python/html/gephi.html

これはgephistramerよりも少し優れていますが、python 3.4以上が必要で、pandas、numpy、sickitなどのほとんどのパッケージは2.7に含まれています。

また、gephiで作成したファイルをpythonに戻す方法はありますか。

提案してください。

PS:質問の詳細全体を編集して、理解しやすくなりました(うまくいけば)。

14
user5287246

自分で答えを探しているときにこの質問を見つけました。私はビジュアライザとしてGephiを選択し、Pythonを使用して組織の周囲からデータをプルすることにより、ツールによって十分にサポートされるグラフを構築したいと考えました。

私は GephiStreamer を見つけました、そしてそれは外部からpython環境(コマンドライン、またはIDE)

この時点でのその他のオプションは次のとおりです。

10
Frobbit

それに対する簡単な答えはありません。 Facebookグループの人々は何かを知っているかもしれませんが、IMOがそれを行うための最良の方法は、Gephi toolkit、つまり利用可能なjarをjythonから呼び出すことです。使用例については here を確認してください。 。問題は、jythonがnumpyおよびその他の一連のライブラリをインストールできないことですが、1つのスクリプトの出力を別のスクリプトにパイプするか、Celeryのようなキューを使用することで、この問題を回避できると思います。

そのため、networkxを使用するgraph_construction.pyという名前のスクリプトを作成し、グラフを作成して、それをgexfの標準出力に書き込みます。次に、gephiで実行する2番目のスクリプトgephi.pyを記述し、グラフをPDFに書き込んでから、次のようなことを行います。

python graph_construction.py | jython gephi.py output.pdf

それが機能するように祈ってください。

2
Yannis P.