teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/02/05 14:38

投稿

bamboo-nova
bamboo-nova

スコア1408

answer CHANGED
@@ -11,4 +11,28 @@
11
11
  の操作で解決できると思います。
12
12
 
13
13
  参考資料
14
- https://teratail.com/questions/129715
14
+ https://teratail.com/questions/129715
15
+
16
+ **質問コメントに対する追記**
17
+ すみません、元々が0or1の隣接行列の場合には、解析する前にページランク解析で取得した辞書でフィルタして、対象に引っかかったノードを削除すれば大丈夫だと思います。
18
+ ```python
19
+ pr = nx.pagerank(G)
20
+ pos1 = nx.spring_layout(G)
21
+
22
+ # 0.05より低いノードを取り出すフィルタ
23
+ filters = {k: v for k, v in pr.items() if v < 0.05}
24
+ # 0.05より高いノード(表示させるノード)を取り出すフィルタ
25
+ ok = {k: v for k, v in pr.items() if v > 0.05}
26
+ # ネットワークから0.05より低いノードを取り除く
27
+ G.remove_nodes_from(filters.keys())
28
+
29
+ # 描画
30
+ plt.figure(figsize=(30, 30))
31
+ nx.draw_networkx_edges(G, pos1)
32
+ # pr.values()ではなくok.values()
33
+ nx.draw_networkx_nodes(G, pos=pos1, node_color=list(ok.values()), cmap=plt.cm.Reds, font_family='IPAexGothic', node_size=[100000*v for v in ok.values()])
34
+ nx.draw_networkx_labels(G,pos1,font_size=10, font_family='IPAexGothic')
35
+
36
+ plt.axis('off')
37
+ plt.show()
38
+ ```