說我有兩個networkx圖表,G
和H
:合併(加入)networkx圖表
G=nx.Graph()
fromnodes=[0,1,1,1,1,1,2]
tonodes=[1,2,3,4,5,6,7]
for x,y in zip(fromnodes,tonodes):
G.add_edge(x,y)
H=nx.Graph()
fromnodes=range(2,8)
tonodes=range(8,14)
for x,y in zip(fromnodes,tonodes):
H.add_edge(x,y)
什麼是加入兩個networkx圖的最佳方式?
我想保留節點名稱(注意公共節點,2到7)。當我用nx.disjoint_union(G,H)
,這並沒有發生:
>>> G.nodes()
[0, 1, 2, 3, 4, 5, 6, 7]
>>> H.nodes()
[2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]
>>> Un= nx.disjoint_union(G,H)
>>> Un.nodes()
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
#
的H
節點標籤被改變(不是我想要的)。我想要在具有相同編號的節點上加入圖形。
注意。這不是Combine two weighted graphs in NetworkX的重複。
如果兩個邊都存在,你想怎麼做?它應該成爲雙刃?或者只是一個邊緣? – Joel
@Joel嗯我對這兩種情況都很感興趣。讓我們說單邊。 – atomh33ls
單邊的情況是由你寫的代碼處理好的。你可以用'U = nx.MultiGraph()' – Joel