Python 3.x Networkx中的图并集
我有两个图表:Python 3.x Networkx中的图并集,python-3.x,union,networkx,Python 3.x,Union,Networkx,我有两个图表: G.nodes() = [0,3] H.nodes() = [1,2,3,4] 我尝试将这些图合并在一起,同时只重新标记H的节点,并为G保留相同的标签,以便生成的图将具有以下节点: U.nodes() = [0,3,1,2,5,4] 如果前两个元素来自G,而其他所有元素都来自H,那么假设节点3上存在名称冲突,则会将其重命名为下一个可用整数 由于G.nodes()被重新标记为[0,1],因此与networkx不相交的联合不起作用 感谢您的帮助 如@Joel所述: import
G.nodes() = [0,3]
H.nodes() = [1,2,3,4]
我尝试将这些图合并在一起,同时只重新标记H的节点,并为G保留相同的标签,以便生成的图将具有以下节点:
U.nodes() = [0,3,1,2,5,4]
如果前两个元素来自G,而其他所有元素都来自H,那么假设节点3上存在名称冲突,则会将其重命名为下一个可用整数
由于G.nodes()被重新标记为[0,1],因此与networkx不相交的联合不起作用
感谢您的帮助 如@Joel所述:
import networkx as nx
import matplotlib.pyplot as plt
_,ax = plt.subplots(1,3, figsize=(10,8))
G = nx.Graph()
G.add_nodes_from([0,3])
nx.draw_networkx(G, ax=ax[0], title='G')
H = nx.Graph()
H.add_nodes_from([1,2,3,4])
nx.draw_networkx(H, ax=ax[1])
U = nx.union(G, H, rename=('G-','H-'))
nx.draw_networkx(U, ax=ax[2])
print(U.nodes())
输出:
NodeView(('G-0', 'G-3', 'H-1', 'H-2', 'H-3', 'H-4'))
使用
rename
可选参数查看nx.union
,然后将节点标签转换为整数。(任何感兴趣的人-请随意在此基础上给出完整答案)