Я надеялся, что вы поможете мне с этим. Я создал график, используя матрицу смежности со следующим кодом.
graph = nx.from_numpy_array(adjacency_matrix, create using = nx.DiGraph)
mypos = nx.spring_layout(graph)
nx.draw_networkx(graph, pos = mypos)
и тогда я получаю кратчайший путь ...
path = nx.shortest_path(graph, 3, 2)
print(path)
Что дает мне следующий путь
[3,1,2]
Я пытался нарисовать путь создание подграфа с использованием узлов, заданных кратчайшим путем.
subgraph = graph.subgraph(path)
nx.draw_networkx(H, pos = mypos, arrows = True)
nx.draw_networkx_nodes(H, pos = mypos, node_color = 'r')
nx.draw_networkx_edges(H, pos = mypos, edge_color = 'r')
И я получаю следующий результат
Проблема если, хотя это было рисование, они добавили новый дополнительный край между узлами 2 и 3, который я не хочу, есть ли способ изменить это, чтобы у меня не было этого дополнительного края? Я знаю, что networkx может удалить ребро с помощью nx.remove_edge (), но я не хочу удалять ребра вручную каждый раз, когда я запускаю программу и выбираю другой путь. Заранее спасибо