Граф Союз в Networkx - PullRequest
       12

Граф Союз в Networkx

0 голосов
/ 13 ноября 2018

У меня есть два графика:

G.nodes() = [0,3]
H.nodes() = [1,2,3,4]

Я пытаюсь объединить графики, перемаркируя только узлы H и сохраняя те же метки для G, чтобы в результате в графе были следующие узлы:

U.nodes() = [0,3,1,2,5,4]

Если первые два элемента взяты из G, а все остальное - из H, учитывая, что в узле 3 существует конфликт имен, он переименовывается в следующее доступное целое число.

disjoint_union из networkx не работает, потому что G.nodes () получает ссылку на [0,1].

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 13 ноября 2018

Как @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'))

enter image description here

...