如何在 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()
最近在研究旅行商问题。我需要在坐标系上获得路线可视化。我有经度和纬度系列: [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()