Networkx_找出最大联通子图及联通子图规模排序
G = nx.path_graph(4)#生成一个包含4个节点的线型网络(一字长蛇型),节点编号lebel从0到1
nx.draw(G,with_labels=True,label_size=1000,node_size=1000,font_size=20)
plt.show()
G.add_path([10,11,12])#再来一个一字长蛇型网络,节点分别是10,11,12
【Networkx_找出最大联通子图及联通子图规模排序】
import matplotlib.pyplot as plt
import networkx as nx
G=nx.path_graph(4)
G.add_path([10,11,12])
nx.draw(G,with_labels=True,label_size=1000,node_size=1000,font_size=20)
plt.show()
#[print(len(c)) for c in sorted(nx.connected_components(G),key=len,reverse=True)]
for c in sorted(nx.connected_components(G),key=len,reverse=True):
print(c)#看看返回来的是什么?结果是{0,1,2,3}
print(type(c))#类型是set
print(len(c))#长度分别是4和3(因为reverse=True,降序排列)largest_components=max(nx.connected_components(G),key=len)# 高效找出最大的联通成分,其实就是sorted里面的No.1
print(largest_components)#找出最大联通成分,返回是一个set{0,1,2,3}
print(len(largest_components))#4
文章图片
推荐阅读
- 无私便是最大的自私---多久没有无私过了
- 人最大的教养,是原谅父母的不完美.读后感
- 股票最大利润|股票最大利润 II
- 公司最大的问题在中层|公司最大的问题在中层 管理
- 2016,我最大的成就是找回自己
- 住在全世界最大的冰雕旅店里(那我不就变成艾莎公主?)
- 我们之前存在最大的问题是聊不来
- 运营懒人包|找出你专属的运营定位
- call和apply的应用
- 读《增长黑客》——以有限的资源获得最大限度的成长