如何在 python 中绘制路线

How to plot routes in python

最近在研究旅行商问题。我需要在坐标系上获得路线可视化。我有经度和纬度系列: [x_c],[y_c]

我得到了TSP方案,根据方案我的最佳路线是:

best_route2
array([ 0.,  7., 10.,  8.,  9.,  1., 13., 11.,  5.,  6., 12.,  4.,  3.,
    2.,  0.])

我开始绘制如下。但是我找不到连接最佳路线的方法。

plt.plot(x_c[0], y_c[0], c='r', marker='*')
plt.scatter(x_c[1:], y_c[1:], c='b')

plot

如何按以下顺序连接点? 0 - 7 - 10 - 8 - 9 - 1 - 13 - 11 - 5 - 6 - 12 - 4 - 3 - 2 - 0

谢谢!

这是您可以修改以满足您的要求的代码片段:

import numpy as np
import matplotlib.pyplot as plt

#number of points
n_points = 8

#for the reproducibility purpose
np.random.seed(12345)

#an array to be used as the hypothetical order
myorder=np.random.choice(range(n_points), n_points, replace=False)

#sample coordinates
x_c = np.arange(n_points)
y_c = np.random.uniform(0,n_points,n_points)

#sorting coordinates
x_c_sorted=[]
y_c_sorted=[]
for sn in myorder:
    x_c_sorted.append(x_c[sn])
    y_c_sorted.append(y_c[sn])
    
#plotting
plt.plot(x_c_sorted, y_c_sorted, '--o')
plt.show()