我在通过大型nx图G的所有可能的子标记迭代时遇到一些麻烦,从文本文件中作为输入。
以下是我在StackOverflow上找到的一些代码,但是没有产生我想要的东西:
g = read_graph(sys.argv[1])
print ('Number of subgraphs:', len(g.subgraph(g.nodes())))
# extract subgraphs
sub_graphs = nx.connected_component_subgraphs(g)
for i, sg in enumerate(sub_graphs):
print "subgraph {} has {} nodes".format(i, sg.number_of_nodes())
print "\tNodes:", sg.nodes(data=True)
print "\tEdges:", sg.edges()
打印出来:
('Number of subgraphs:', 4039)
subgraph 0 has 4039 nodes
Nodes: <generator object nodes at 0x10ed77910>
Edges: <generator object edges at 0x10ed77910>
我要做的是能够遍历长度为3或更大的所有子图,然后以图形的形式对它们执行某些功能。
谢谢!
答案 0 :(得分:1)
我是在假设&#34;长度为3&#34;意味着&#34;至少3个节点&#34;。
import networkx as nx
g = read_graph(sys.argv[1])
for subgraph in nx.connected_component_subgraphs(g):
if subgraph.number_of_nodes()>2:
#your code here