ネットワークの可視化

Pythonで学ぶネットワーク分析入門

Eric Ma

Data Carpentry instructor and author of nxviz package

非合理 vs. 合理的な可視化

大規模グラフの2例。どちらも毛玉状で構造が乱雑なため、解釈が難しい。

Pythonで学ぶネットワーク分析入門

ネットワークの可視化

  • 行列表現
  • アークプロット
  • サーコスプロット
Pythonで学ぶネットワーク分析入門

ネットワークの可視化

  • 行列表現
  • アークプロット
  • サーコスプロット
Pythonで学ぶネットワーク分析入門

行列表現

3×3 の行列。列名は A, B, C、行名も A, B, C。対応するグラフで接続があるセルは黒塗り。右には A, B, C の3ノードのグラフ。A-B と A-C は接続、B-C は直接は接続なし。

Pythonで学ぶネットワーク分析入門

行列表現

同じ行列とグラフで、行列の対角が灰色に塗られている。

Pythonで学ぶネットワーク分析入門

行列表現

先ほどと同じ行列とグラフ。いまはセル (A, B) と (B, A) が黄色で塗られ、グラフ上のノード A と B の辺も黄色。

Pythonで学ぶネットワーク分析入門

行列表現

先ほどと同じ行列とグラフ。いまはセル (A, C) と (C, A) が黄色で、グラフ上のノード A と C の辺も黄色。

Pythonで学ぶネットワーク分析入門

有向行列

ch1-3.012.png

Pythonで学ぶネットワーク分析入門

ネットワークの可視化

  • 行列表現
  • アークプロット
  • サーコスプロット
Pythonで学ぶネットワーク分析入門

アークプロット

3ノードのグラフが2つ。どちらも A, B, C と、A-B と A-C の辺を持つ。1つ目はノードを直線上に配置し、辺は曲線。2つ目は平面上に配置し、辺は直線。

Pythonで学ぶネットワーク分析入門

ネットワークの可視化

  • 行列表現
  • アークプロット
  • サーコスプロット
Pythonで学ぶネットワーク分析入門

サーコスプロット

ch1-3.018.png

Pythonで学ぶネットワーク分析入門

サーコスプロット

6ノードのグラフが2つ。左はノードを円形に配置し、辺は円弧。右はランダム配置で、辺は直線。

Pythonで学ぶネットワーク分析入門

nxviz API

import nxviz as nv
import matplotlib.pyplot as plt

ap = nv.arc(G)
plt.show()
Pythonで学ぶネットワーク分析入門

練習しましょう!

Pythonで学ぶネットワーク分析入門

Preparing Video For Download...