使用networkx画网络图时,如何将节点大小表现为根据其度的大小变化
先给结果
import networkx as nx
import matplotlib.pyplot as plt
g = nx.Graph()
g.add_edges_from([(1,2), (2,3), (2,4), (3,4)])
d = dict(g.degree)
nx.draw(g, nodelist=d.keys(), node_size=[v * 100 for v in d.values()])
plt.show()
其中,g.degree
给出的是整个图所有节点的度,是一个类似数组列表的形式,
[(1, 1), (2, 3), (3, 2), (4, 2)]
而dict(g.degree)
之后,成为这样:
{1: 1, 2: 3, 3: 2, 4: 2}
接下来可以,dict(g.degree).value()
得到度的值,
dict_values([1, 3, 2, 2])
然后就可以直接for 循环分别对应节点的node_size了:
node_size=[v * 100 for v in d.values()]
结果如下图: