如何解决从具有任何选定节点的大型 Networkx 图中提取子图? 相关文档示例使用
我在下面有一个使用 pyvis
库制作的大型网络图。
HTML 加载/渲染时间非常长,加载时间更长。
我想单独提取子图
我想通过选择节点来提取上图中标记的任何子图。在简单而不是绘制整个网络的情况下,我想绘制一个选定的子图。
解决方法
在 networkx 库中,函数 networkx.algorithms.clique.cliques_containing_node
返回包含给定节点的所有最大团。
相关文档
示例使用
构建图表
import networkx as nx
import itertools as it
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_nodes_from(list(range(8)))
G.add_edges_from(it.combinations(range(0,4),2))
G.add_edges_from(it.combinations(range(4,7),2))
G.add_edges_from([(3,(6,7)])
print(G.nodes)
# NodeView((0,1,2,3,4,5,6,7))
print(G.edges)
# EdgeView([(0,1),(0,2),3),(1,(2,(3,(4,5),6),(5,7)])
print(G.adj)
# AdjacencyView({0: {1: {},2: {},3: {}},1: {0: {},2: {0: {},1: {},3: {0: {},4: {}},4: {5: {},6: {},5: {4: {},6: {}},6: {4: {},5: {},7: {}},7: {6: {}}})
nx.draw(G,with_labels=True,font_weight='bold')
plt.show()
在我们的图表上调用 cliques_containing_node
print(nx.algorithms.clique.cliques_containing_node(G,[0,7]))
# {0: [[3,2]],4: [[3,4],[5,6]],7: [[6,7]]}
这里的函数nx.algorithms.clique.cliques_containing_node
告诉我们节点0在极大团[0,3]中;节点 4 在两个极大团中,[3,4] 和 [5,6];并且节点 7 在极大团 [6,7] 中。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。