2017-05-07 143 views
0

我知道有一种关于如何使用节点列表创建子图的方法。但我想知道是否有办法使用边缘来创建子图。我现在创建一个MultiDiGraph。其实当我打电话打印(G.edges(数据= TRUE))结果是吼叫:如何使用边的属性创建子图

[(1, 64, {'agent id': 1875}), (1, 64, {'agent id': 936}), (1, 75, {'agent id': 199}), (1, 75, {'agent id': 496}), (1, 4, {'agent id': 496}), (1, 81, {'agent id': 563}), (1, 459, {'agent id': 496})] 

现在我想为每个“代理人身份证”创建子图,我该怎么办? 非常感谢!

回答

0

首先使用列表理解收集您想要的所有边。然后创建一个新图形并添加这些边缘。

edges = [(u,v,d) for u,v,d in G.edges(data = True) if d['agent id'] = x] 

H = nx.multiDiGraph() 
H.add_edges_from(edges) 
+0

非常感谢!而且我还有一个问题,就是我有很多'agent id',我需要使用“for circle”为每个'agent id'自动创建子图。现在我有一个'代理ID'列表,那我该怎么做呢? –