Отображение направленного графа ( networkx)
Всем привет!
Задачка у меня такая: Есть направленный граф из двух вершин A, B, вершины связаны так: A->B = 100 B->A = 50
При отрисовке у меня теряется информация о том, что путь из A->B занимает больше времени
Код программы:
import networkx as nx
import matplotlib.pyplot as plt
# Создаем направленный граф
G = nx.DiGraph(directed=True)
# Добавляем вершины
G.add_node('A')
G.add_node('B')
# Добавляем ребра с весами
G.add_edge('A', 'B', weight=100)
G.add_edge('B', 'A', weight=50)
# Визуализация графа
pos = nx.spring_layout(G) # Позиции вершин
plt.figure(figsize=(8, 6))
nx.draw(G, pos, with_labels=True, node_size=500, node_color='lightblue', font_size=12)
# Отображаем веса ребер
edge_labels = nx.get_edge_attributes(G, 'weight')
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels)
plt.title('Направленный граф с весами')
plt.show()
Как можно нарисовать дополнительное ребро с отдельным весом?
Ответы (1 шт):
Автор решения: MBo
→ Ссылка
nx.draw(G, pos, with_labels=True, node_size=500, node_color='lightblue', font_size=12,connectionstyle='arc3, rad = 0.1')
# Отображаем веса ребер
edge_labels = nx.get_edge_attributes(G, 'weight')
nx.draw_networkx_edge_labels(G, pos, edge_labels=edge_labels,label_pos=0.4,connectionstyle='arc3,rad=0.1')