Я хочу визуализировать Multi-Directed-Graph с весом ребра и координатами узла в python, как показано ниже.
OutputImage:
Я попытался нарисовать с помощью 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()
Скажите, пожалуйста, есть ли у вас хорошая библиотека или алгоритм?