Warm tip: This article is reproduced from serverfault.com, please click

networkx-使用 matplotlib python 绘制图形

(networkx - Plotting graph using matplotlib python)

发布于 2021-01-16 15:34:18

我需要为 ACO TSP 的以下解决方案绘制图形。我需要绘制的图形将与此接近:

ACO TSP 图表

我可以处理的任何代码片段?

Questioner
pepegaClap
Viewed
0
warped 2021-01-17 01:47:13

tsplib95的文档中

Converting problems
get_graph() creates a networkx.Graph instance from the problem data:

>>> G = problem.get_graph()
>>> G.nodes
NodeView((1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16))

所以,G 是一个networkx图形,这意味着你可以用networkx它来绘制它:

import matplotlib.pyplot as plt
import networkx as nx

nx.draw_networkx(G)
plt.show()

编辑:绘制路径:

pos = nx.spring_layout(G)

H = nx.DiGraph(G) # convert to directed graph s.t. the edges have arrows. 

nx.draw_networkx_nodes(H, pos=pos) # draw nodes
nx.draw_networkx_edges(H, pos=pos, alpha=0.1) # draw all edges with transparency
nx.draw_networkx_edges(H, pos=pos, edgelist=tour.path, edge_color='red') # highlight the edges in the path

plt.show()