Nói rằng tôi có hai đồ thị networkx, G
và H
:Kết hợp (tham gia) Đồ thị 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)
cách tốt nhất để tham gia hai đồ thị networkx là gì?
Tôi muốn giữ nguyên tên nút (lưu ý các nút chung, từ 2 đến 7). Khi tôi sử dụng nx.disjoint_union(G,H)
, điều này đã không xảy ra:
>>> 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]
#
Các H
nhãn nút đã được thay đổi (không phải những gì tôi muốn). Tôi muốn tham gia các đồ thị tại các nút có cùng số.
Lưu ý. Đây không phải là bản sao của Combine two weighted graphs in NetworkX.
Bạn muốn làm gì nếu một cạnh tồn tại trong cả hai? Nó có nên trở thành một cạnh kép? hoặc chỉ là một cạnh duy nhất? – Joel
@ Joel hmm Tôi quan tâm đến cả hai trường hợp. Hãy nói cạnh duy nhất mặc dù. – atomh33ls
Trường hợp cạnh duy nhất được xử lý bằng mã bạn đã viết. Trường hợp đa hợp bạn chỉ cần làm 'U = nx.MultiGraph()' – Joel