11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

コピペで試せる!Pythonのnetworkxでかっこいいネットワーク図を描いてみよう

Last updated at Posted at 2020-01-01

冬休みはかっこいいネットワーク図が描けるnetworkxでネットワーク図を描いてみよう

みなさまはいい冬休みを過ごしていますか?わが社は28から5日までお休みをいただき本当にネズミに感謝している日々です。

でも技術者はこういった時こそマック難民をして自己の技術を研鑽させるべきだと思います。

今日はnetworkxというネットワーク図が描けるライブラリを紹介します。

  • 今回のワークの所要時間:10分程度
  • 用意するもの
  • Python 3.x
  • jupyterhub(pandasとmatplotlibをインストールしておいてください)

インストール

(venv)$pip install networkx

まずはデータをpandasでデータをロードします

import pandas as pd
df_links = pd.read_csv('https://microlearning.site/pydata/ch8/links.csv')
df_links.head(20)

以下のような表がロードされていることを確認してください。関係があるネットワーク同士は1になっています。

image.png

いよいよネットワーク図を描画

ネットワーク図の描画は以下です。

import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
NUM = len(df_links.index)
for i in range(1,NUM+1):
    node_no = df_links.columns[i].strip("Node")#「Node」の文字を除去
    G.add_node(str(node_no))

for i in range(NUM):
    for j in range(NUM):
        if df_links.iloc[i][j] == 1:
            G.add_edge(str(i),str(j))

nx.draw_networkx(G,nide_color="k",edge_color="k",font_color="w")
plt.show()

何をしているかざっくりと説明させていただくと、まずノードを追加して
表のノード同士が1になっている部分(関係している部分)を線で結んでいます。

すると、以下のようなネットワーク図が表示されます(毎回表示は異なります)
各ノードと関係が濃い番号が中心に来ています。(4や5など)

image.png

お疲れさまでした。実行するたびに形が異なります。試してみてください。

更新履歴

  • 2020/1/1 新規作成
11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?