【Python】ネットワークを図で描画するNetworkxの紹介【簡単です】

プログラミング
スポンサーリンク

スポンサーリンク

この記事をおすすめしたい人

・Pythonで簡単に図を書いてみたい

・Pythonの基礎を学び終えた方

・大学や仕事などでネットワーク図を作成する必要がある

・グラフ理論の図をプログラミングで作成してみたい

・グラフを見て理系心がくすぐられる方

このどれか一つでも当てはまった方に特に読んでほしい記事です。

それではまずはnetworkxについて説明していきます。

NetworkXとは?

NetworkXとはグラフ理論やネットワーク理論に用いられるPythonのライブラリ・パッケージとなっています。

MatplotlibやPYGraphvizと併用することで画像として可視化することができるようになります。

Networkxの使い方

まずはインストールしていない方はターミナル上でpipコマンドを用いてインストールしてあげましょう。

pip install networkx

まずは画像を表示するためのmatplotlibとnetworkxをimportしてあげましょう。

import matplotlib.pyplot as plt
import networkx as nx

次にグラフを初期化してあげます。

今回は向きを加味しない無向グラフを作成したいと思います。

G = nx.Graph()

有効グラフを作成したい方はこちらのコードを打ち込んであげて以下は無向グラフと同じです。

G = nx.DiGraph()

では次に頂点を追加していきましょう。

頂点の追加

G.add_node(1)

それでは画像の表示をしてみようと思います。

nx.draw(G)
plot.show()

と最後に打ち込んで実行してあげてください。

一応今までのコードを全部書くとこんな感じです。

import matplotlib.pyplot as plt
import networkx as nx

G = nx.Graph()

G.add_node(1)

nx.draw(G)
plt.show()

このように一つの頂点が表示されると思います。

それでは次に一気にたくさんの頂点を追加してみましょう。

G.add_nodes_from([2,3,4,5])

こちらのコードを上のコードのG.add_node(1)の下に追加してあげると

このように一気に頂点を四つ増やすことができると思います。

それでは次にこの頂点を辺でつないであげましょう。

辺の追加

1の頂点と2の頂点を繋ぎます。

G.add_edge(1,2)

1と2の頂点だけが辺で繋がれました。

次は一気に辺で繋いでみようと思います。

こちらのコードを追加してみてください。

G.add_edges_from([(1, 3), (2, 5), (3, 4), (4, 5)])
スポンサーリンク

頂点の削除

頂点を消したい場合にはこのようにしましょう。

#一つ消す場合
G.remove_node(3)

#複数消す場合
G.remove_nodes_from([1,2])

辺の削除

辺を消したい場合も同様です。

#一つ消す場合
G.remove_edge(1,2)

#複数消す場合
G.remove_edges_from([(2,3),(3,4)])

頂点と辺を同時に追加

頂点と辺を一行で追加することもできます。

nx.add_path(G, [1, 2, 3, 4, 5])

閉路(一周する道)を作成

閉路と呼ばれる頂点を一周する道を一行で作成することもできます。

nx.add_cycle(G, [1, 2, 3, 4, 5])

放射状に頂点と辺を追加

最後に放射状に頂点と辺を追加してみましょう。

nx.add_star(G, [1, 2, 3, 4, 5])

おまけ

最後におまけとしてnetworkxホームページのAntigraphのコードをコピペするとこんなグラフを書いていくことも可能です。

理系ならばちょっと惹かれますよね。

スポンサーリンク

Pythonの勉強方法【おまけ】

Pythonの基礎文法を勉強するにはUdemyというオンラインプログラミング学習プラットフォームがおすすめです。

具体的に言うとこちらの講座です。

この講座だけで基礎文法だけでなく実践的な応用スキルまで身につけることができます。

めちゃくちゃわかりやすい講座なので気になる方は是非みてみてください。

私が受けたPythonの講座の中では最も良かったですし、この講座だけで案件を獲得できるようになるレベルまでプログラミングを上達させることができると思います。

実際多くの人がWeb上で高評価をしていてUdemyのPython講座といえばこの講座と言われているほどです。

今回紹介したNetworkxを用いたネットワーク図の描画もレクチャーしてくれています。

気になる方はこちらのリンクからどうぞ。

Udemy

その他の記事

おわりに

今回はPythonライブラリで提供されているnetworkxについて紹介しました。

ネットワークに興味がある方やPythonでグラフを書いてみたい方に特におすすめの内容でした。

Pythonの基礎を学び終えた方は知っておきたい内容です。

興味がある方はUdemyのコースを受けてみるのも良いかと思います。

Udemy

コメント

タイトルとURLをコピーしました