在Networkx MultiDigraph中嵌套嵌套列表中的节点

时间:2014-04-01 10:05:36

标签: python python-2.7 networkx

我在网络x MultiDigraph中有多个相等长度并且彼此平行的MULTIPLE线图,我如何在图形上循环并将边缘添加到具有边缘的相对节点(NB节点在嵌套列表中)s即连接2& ; 2a,3& 3a等

nodes1 = [[2,5,7,8,9,10],[3,15,37,58,69,10]]
nodes2 = [['2a','5a','7a','8a','9a','10a'],['3a','15a','37a','58a','69a','10a']] 
                              BEFORE
            2---------3---------4----------5----------6



           2a---------3a-------4a--------5a---------6a


                               AFTER
            2---------3---------4----------5----------6
           | |       | |       | |        | |        | |
           | |       | |       | |        | |        | |
           | |       | |       | |        | |        | |
           2a--------3a--------4a----------5a--------6a

1 个答案:

答案 0 :(得分:3)

假设列表的长度匹配且子列表匹配,那么您可以这样做:

In [33]:

import networkx as nx
nodes1 = [[2,5,7,8,9,10],[3,15,37,58,69,10]]
nodes2 = [['2a','5a','7a','8a','9a','10a'],['3a','15a','37a','58a','69a','10a']] 

In [47]:
# build an edge list    
edge_list = []
# iterate over the length of the lists, access each list and zip them
for i in range(len(nodes1)):
    edge_list = edge_list + (list(tuple(zip(nodes1[i], nodes2[i]))))
    # now add the opposite direction
    edge_list = edge_list + (list(tuple(zip(nodes2[i], nodes1[i]))))
edge_list
0
1
Out[47]:
[(2, '2a'),
 (5, '5a'),
 (7, '7a'),
 (8, '8a'),
 (9, '9a'),
 (10, '10a'),
 ('2a', 2),
 ('5a', 5),
 ('7a', 7),
 ('8a', 8),
 ('9a', 9),
 ('10a', 10),
 (3, '3a'),
 (15, '15a'),
 (37, '37a'),
 (58, '58a'),
 (69, '69a'),
 (10, '10a'),
 ('3a', 3),
 ('15a', 15),
 ('37a', 37),
 ('58a', 58),
 ('69a', 69),
 ('10a', 10)]
In [48]:

G = nx.DiGraph()
G.add_edges_from(edge_list)
G.edges()
Out[48]:
[(2, '2a'),
 (3, '3a'),
 (5, '5a'),
 (7, '7a'),
 (8, '8a'),
 (9, '9a'),
 (10, '10a'),
 (15, '15a'),
 ('5a', 5),
 ('69a', 69),
 ('2a', 2),
 (69, '69a'),
 ('7a', 7),
 (37, '37a'),
 ('8a', 8),
 ('9a', 9),
 ('10a', 10),
 ('15a', 15),
 ('58a', 58),
 ('37a', 37),
 (58, '58a'),
 ('3a', 3)]

In [49]:

nx.draw(G)

enter image description here