Как визуализировать многонаправленный граф с весом ребра и координатами узла в Python - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу визуализировать Multi-Directed-Graph с весом ребра и координатами узла в python, как показано ниже.

OutputImage: enter image description here

Я попытался нарисовать с помощью networkx и pyplot.Но стрелки не могут смотреть, потому что pyplot рисует их, перекрывая друг друга.

nodes = pd.DataFrame([[[1, 3]], [[0, 2]], [[3, 3]], [[5, 2]], [[2, 4]]], columns=['coords'])
nodes.index = ['A', 'B', 'C', 'D', 'E']
edges = pd.DataFrame([['A','B', 4], ['B','A', 20], ['C','B', 3], ['D','D' ,10], ['C','A', 7], ['E','A' ,2], ['D','C' ,15], ['C','E', 8], ['D','A', 2]], columns=['start', 'end', 'weight'])

G = nx.MultiDiGraph()
G.add_nodes_from(nodes.index)
for index, row in edges.iterrows():
    G.add_edge(row.start, row.end, weight=row.weight)

nx.draw_networkx_labels(G, nodes.coords, font_size=16)
nx.draw_networkx_edge_labels(G, nodes.coords, weight=edges.weight)
nx.draw(G, nodes.coords)

plt.show()

Скажите, пожалуйста, есть ли у вас хорошая библиотека или алгоритм?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...