NetworkXを使用してグラフを作成し、MatplotlibまたはGephiを使用してグラフを表示します



Use Networkx Create Graphs



概要

この記事では、簡単に紹介します。

  • NetworkX、それを使用してグラフを作成します
  • MatplotlibとGephi、作成したグラフを表示します

私が使用する環境:



  • ウインドウズ10
  • Python 3.6
  • networkx 2.2(Pythonパッケージ)
  • matplotlib 3.0.1(Pythonパッケージ)
  • Gephi 0.9.2(Java 11.0.1の場合)

グラフを作成する

まず、Pythonパッケージをダウンロードしてインストールします networkx 、次にインポートします。

import netwrokx as nx

次に、いくつかのノードとエッジを持つグラフを作成します。



G = nx.Graph() G.add_node('a') G.add_node('b') # add node one by one G.add_nodes_from([1, 2, 3, ]) # use list to add nodes G.add_edge('a', 'b') # add edge one by one G.add_edges_from([('a', 1), ('a', 2), ('a', 3), ]) # use list to add edges

これで、4つのノードと4つのエッジを持つグラフGができました。 nx.DiGraph()を使用して有向グラフを作成できます同じ。

Matplotlibで表示する

これで、このグラフを表示できます。最初にpythonパッケージをインポートします。 matplotlib 次のように:

import matplotlib.pyplot as plt

次に、それを描画して表示します。



nx.draw(G, with_labels=True) plt.show()

今私たちが得たものを確認してください:
グラフ
笑、すごいですね。

グラフを保存する

作成したグラフをファイルに保存することができ、次のような多くの標準グラフ形式を選択できました。 GEXFGraphMLピクルス などをクリックできます ここに グラフのより多くの形式を表示します。
これで、Pythonオブジェクトまたはグラフができました G 、次に、pickleファイルを使用して保存または読み取ります。

nx.write_gpickle(G, 'the_great_graph.pkl') F = nx.read_gpickle('the_great_graph.pkl')

NetworkX 複雑なグラフを操作するための強力なツールであり、多くの関数が含まれています。を参照してください。 ドキュメンテーション あなたが必要なものをもっと学ぶために。

Gephiで表示する

Gephiとは何ですか?

Gephiは、あらゆる種類のグラフとネットワーク向けの主要な視覚化および探索ソフトウェアです。 Gephiはオープンソースで無料です。
Windows、Mac OS X、Linuxで動作します。

場合によっては、数千を超えるノードとエッジを含む大きなグラフが表示され、matplotlibで表示するのが難しいことがありますが、それを視覚化する別のオプションがあります。 どこ

Gephiをダウンロードしてインストールする

に移動します オフィシャルサイト ダウンロードするには、インストールは非常に簡単です。[次へ]、[次へ]の順にクリックするだけです。

Javaをダウンロードしてインストールする

Gephiを開くにはJava1.8以降が必要なようです。theJaveにアクセスしてください オフィシャルサイト ダウンロードしてインストールするのも簡単ですが、C:Program FilesJavajdk-11.0.1のようにインストールパスを覚えておいてください。
次に、Gephiインストールディレクトリに移動し、次に ファイルを見ることができるディレクトリ gephi.conf 、nodepadなどのエディターで開きます。
# jdkhome='...''で始まる行を見つけて、文字を移動します 、引用符で囲んだパスを次のようにJavaインストールパスに置き換えます。

jdkhome='C:Program FilesJavajdk-11.0.1'

最後に保存します gephi.conf ファイルを開き、 どこ

大きなグラフを扱う

Gephiでは、非常に大きなグラフを開いて、多くのグラフを使用できます。 レイアウトアルゴリズム グラフを表示するには、 ForceAtlas 2
以下に例を示します。この有向グラフには、911,714ノードと1,216,998エッジがあります。
大きなグラフ

参考文献

[1] NetworkXの概要。 (2018年9月19日)。から取得 https://networkx.github.io/documentation/stable/index.html