回答編集履歴
1
追記
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
|
+
```
|