接続性を可視化する
ここでは、最も接続されているノードの接続性が時間とともにどのように変化するかを可視化します。前の演習で作成した上位の接続数リスト top_connected は読み込まれています。
Chapter 1 で使った defaultdict を覚えていますか?この演習でも defaultdict を使います!動画で Eric が述べたように、通常の Python の辞書では、存在しないキーで要素を取得しようとすると KeyError になりますが、defaultdict ならその心配がありません。
この演習では入れ子の for ループを使います。つまり、ある for ループの中で別の for ループを使います。
この演習はコースの一部です
Python 中級ネットワーク解析
演習の手順
- 空のリストを既定値とする
defaultdictをconnectivityという名前で初期化します。 forループでtop_connectedを反復し、その外側のforループの本体で、さらにGsを反復します。入れ子のループ内では次を行います。connectivityのキーはtop_connected内のノードn、値は接続性スコアのリストにします。したがって、len(list(G.neighbors(n)))をconnectivity[n]に追加(append)します。
.items()でconnectivityを反復し、各ノードの接続性を描画するためにconnをplt.plot()に渡してプロットします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import necessary modules
import matplotlib.pyplot as plt
from collections import defaultdict
# Create a defaultdict in which the keys are nodes and the values are a list of connectivity scores over time
connectivity = ____
for n in ____:
for g in ____:
connectivity[____].____(len(____))
# Plot the connectivity for each node
fig = plt.figure()
for n, conn in ____:
plt.plot(____, label=n)
plt.legend()
plt.show()