我正在研究一种路线数学模型,我想绘制一些在最佳条件下设置的车辆的路线。变量x [i,j,k]是一个二进制变量,当车辆k驶过(i,j)弧线时,其值为1。我有最佳解决方案,我想使用networkx
进行绘制。我已经成功绘制了路线,但是我想在图像的某个角上用一个小箭头标记它们并使用相应的颜色。我怎样才能做到这一点?有什么想法吗?
这是我的实际输出:
我的代码如下:
def plot_solution():
V=[i for i in range(N)]
G=nx.DiGraph()
G.add_nodes_from(V)
E=[]
pos=nx.spring_layout(G,k=0.3)
color = list(np.random.choice(range(256), size=3))
number_of_rutas = K
color = ["#"+''.join([random.choice('0123456789ABCDEF') for j in range(6)]) for i in range(number_of_rutas)]
for i in range(N):
for j in range(N):
for k in range(K):
if(Model.solution.get_values("x("+str(i)+","+str(j)+","+str(k)+")")!=0.0):
E.append((i,j))
G.add_edges_from(E)
nx.draw_networkx_edges(G, pos, edgelist=E, edge_color=color[k], width=1.8 ,arrows=True)
E=[]
nx.draw_networkx_nodes(G, pos,node_color='y')
nx.draw_networkx_labels(G, pos)
plt.axis('off')
plt.savefig('grafo_cvrp.png',dpi=2000)
plt.show()
# show_solution()
plot_solution()
任何帮助都很好,在此先感谢:D,智利,南美的问候。