目次
この記事をおすすめしたい人
![](https://prog-you.com/syohyou/wp-content/uploads/2021/03/nocode.png)
どーも、学生エンジニアのゆうき(@engineerblog_Yu)です。
・Pythonで簡単に図を書いてみたい方
・Pythonの基礎を学び終えた方
・大学や仕事などでネットワーク図を作成する必要がある方
・グラフ理論の図をプログラミングで作成してみたい方
・グラフを見て理系心がくすぐられる方
このどれか一つでも当てはまった方に特に読んでほしい記事です。
それではまずはnetworkxについて説明していきます。
NetworkXとは?
![](https://prog-you.com/syohyou/wp-content/uploads/2020/11/social-media-3846597__480.png)
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()
このように一つの頂点が表示されると思います。
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/646d3d19cfe0c0ee33dbab1b8b90fedb-1024x692.png)
それでは次に一気にたくさんの頂点を追加してみましょう。
G.add_nodes_from([2,3,4,5])
こちらのコードを上のコードのG.add_node(1)の下に追加してあげると
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/a505afd58b39f7c41c6baa937dd7ef27-1024x775.png)
このように一気に頂点を四つ増やすことができると思います。
それでは次にこの頂点を辺でつないであげましょう。
辺の追加
1の頂点と2の頂点を繋ぎます。
G.add_edge(1,2)
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/a1379658110a044c46870e74fe837e81-1024x781.png)
1と2の頂点だけが辺で繋がれました。
次は一気に辺で繋いでみようと思います。
こちらのコードを追加してみてください。
G.add_edges_from([(1, 3), (2, 5), (3, 4), (4, 5)])
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/810355b399acfefc46134f103b16ff43-1024x778.png)
頂点の削除
頂点を消したい場合にはこのようにしましょう。
#一つ消す場合
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])
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/b783032255bc926b1a3794d0406da6a9-1024x775.png)
閉路(一周する道)を作成
閉路と呼ばれる頂点を一周する道を一行で作成することもできます。
nx.add_cycle(G, [1, 2, 3, 4, 5])
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/83faad489f885bb8826e4cc6fedd8ce7-1024x783.png)
放射状に頂点と辺を追加
最後に放射状に頂点と辺を追加してみましょう。
nx.add_star(G, [1, 2, 3, 4, 5])
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/37cbf666616e51b151f33e5c5a6c82a5-1024x771.png)
おまけ
最後におまけとしてnetworkxホームページのAntigraphのコードをコピペするとこんなグラフを書いていくことも可能です。
理系ならばちょっと惹かれますよね。
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/ff31e44a1b1c148589ce669e4c8f3da3-1024x771.png)
![](https://prog-you.com/syohyou/wp-content/uploads/2021/04/546c98ecd1af862ea667ba8c9eb8b622-1024x781.png)
![ねこすけ](https://prog-you.com/syohyou/wp-content/uploads/2022/04/fcedeb3e47d759777985cdd471841cd1-1.png)
今回はおまけつきにゃ。
最後に
- プログラミングに興味があるけど何からしていいのかわからない
- Pythonを使ったバイトやインターンなどに参加してみたい
- 未経験でPythonエンジニアになりたい
これらに当てはまる方におすすめの講座を紹介していこうと思います。
Pythonの勉強方法【おまけ】
具体的に言うとこちらの講座です。
![](https://prog-you.com/syohyou/wp-content/uploads/2021/01/61fd5caf6e3b95ef5afd2231bc5b27b5-2-1024x567.png)
上記の講座を全部理解することができればすぐにPythonエンジニアとして働くことも可能です。
また大学の授業やバイト、インターンであれば、その都度必要な部分だけを見てスキルアップしていくこともできます。
私が受けたPythonの講座の中では最も良かったですし、この講座を受けるだけでPythonの案件をこなせるレベルまでプログラミングを上達させることができると思います。
実際多くの人がWeb上で高評価をしていてUdemyのPython講座といえば酒井潤さんの上記の講座と言われているほどです。
プログラミングスキルを身につけて安定を得たい、エンジニアになりたい、プログラミングの副業をしてみたいと思っている方に特におすすめの講座です。
以下のリンクからUdemy講座を参照することができます。
自分の未来に投資しよう。サイバーセール中はUdemyコースが最大90%OFF。![ねこすけ](https://prog-you.com/syohyou/wp-content/uploads/2022/04/fcedeb3e47d759777985cdd471841cd1-1.png)
ほかにもいろいろ投稿してるにゃ。
その他の記事
おわりに
![](https://prog-you.com/syohyou/wp-content/uploads/2020/12/cropped-fantasy-4063619__480-1.jpg)
今回はPythonライブラリで提供されているnetworkxについて紹介しました。
ネットワークに興味がある方やPythonでグラフを書いてみたい方に特におすすめの内容でした。
Pythonの基礎を学び終えた方は知っておきたい内容です。
興味がある方はUdemyのコースを受けてみるのも良いかと思います。
コメント