You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用点索引列表绘制经过所有点的闭合路线?

旅行商问题闭合路线绘制方案

你只需根据指定的final_route序列,提取对应点的坐标并绘制连续线段,就能得到闭合路线。以下是修改后的完整代码:

import matplotlib.pyplot as plt

# 客户点数据
allIds = [0, 1, 2, 3, 4, 5]
allxs = [50, 25, 43, 80, 25, 18]
allys = [50, 54, 96, 50, 90, 47]
final_route = [0, 4, 5, 2, 1, 3, 0]

# 从路线ID中提取对应坐标
route_x = [allxs[pid] for pid in final_route]
route_y = [allys[pid] for pid in final_route]

# 初始化绘图
fig, ax = plt.subplots()
fig.set_size_inches(6, 6)

# 绘制闭合路线线段
ax.plot(route_x, route_y, color='#2e86ab', linewidth=2)

# 绘制客户点并标注ID
ax.plot(allxs, allys, ls="", marker="o", markersize=8, color='#e74c3c')
for xi, yi, pidi in zip(allxs, allys, allIds):
    # 标注偏移一点,避免覆盖点
    ax.annotate(str(pidi), xy=(xi, yi), xytext=(3, 3), textcoords='offset points')

# 设置坐标轴范围
plt.xlim([0, 100])
plt.ylim([0, 100])

plt.show()

关键说明:

  • 用列表推导式根据final_route中的ID,从allxs和allys中取出对应坐标,生成路线的x、y序列
  • 调用ax.plot(route_x, route_y)时,matplotlib会自动按顺序连接所有点,由于final_route最后回到起点ID=0,所以会形成闭合路线
  • 调整了点和路线的颜色,同时给标注加了小偏移,让内容更清晰

内容的提问来源于stack exchange,提问作者Yannis_Tr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 09:41:01