nxviz を使ってフィルタ済みグラフを可視化する
ここでは、circos プロットを使ってフィルタ済みのグラフを可視化します。circos プロットは、この可視化に最適です。ノードのグループ分けと色分けでパーティションを表現でき、円形レイアウトにより見た目の分かりやすさも保てるためです。
この演習はコースの一部です
Python 中級ネットワーク解析
演習の手順
- 二部グラフモジュールの次数中心性を使って各ノードの次数中心性スコアを計算しますが、元のグラフでの次数中心性に基づかせます。
- そのために
nx.bipartite.degree_centrality()関数を使い、引数にはGとnodes=forum_nodesを指定します。
- そのために
- 新しい
circosプロットを作成し、ノードをパーティションラベル('bipartite')で色分け・グループ化(パラメータnode_color_byとgroup_by)し、次数中心性('dc')で順序付け(パラメータsort_by)して表示します。- 表示時にノードが見やすいように、
node_enc_kwargs={'radius': 10}という引数を追加しています。
- 表示時にノードが見やすいように、
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Import necessary modules
from nxviz import circos
import networkx as nx
import matplotlib.pyplot as plt
# Compute degree centrality scores of each node
dcs = ____(____, nodes=____)
for n, d in G_sub.nodes(data=True):
G_sub.nodes[n]['dc'] = dcs[n]
# Create the circos plot: c
c = _____(___, _____, _____, _____, node_enc_kwargs={'radius': 5})
# Display the plot
plt.show()