我有以下网络图表摘录:
执行以下函数以探索连接组件的结构,因为我有一个具有大量奇异连接的稀疏网络:
nx.number_connected_components(G)
>>> 702
list(nx.connected_components(G))
>>> [{120930, 172034},
{118787, 173867, 176202},
{50376, 151561},
...]
问题:如何将整个图表可视化限制为等于或超过三个节点的connected_components?
答案 0 :(得分:2)
我们可以创建一个子图,其中包含具有相同或三个以上节点的组件:
s = G.subgraph(
set.union(
*filter(lambda x: len(x) >= 3, nx.connected_components(G))
)
)
现在您只需要可视化此子图s
。
我们可能需要制作副本而不是SubGraph
视图,在这种情况下,s = s.copy()
将从子图制作副本。
答案 1 :(得分:2)
graphs = list(nx.connected_component_subgraphs(G))
list_subgraphs=[items for i in graphs for items in i if len(i)>=3]
F=G.subgraph(list_subgraphs)
创建一个包含大于3个节点的子图的平面列表,可以说!