特定作战需求文件中的连接点

2024-04-23 11:25:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我将要描述的完整代码(不包括路径查找算法)可以在Code Review上找到

我正在用Python从一个文本文件中读取10个坐标。然后,我继续将纬度和经度坐标传递给一个函数,该函数按如下方式打印这些点

def read_two_column_file(file_name):
    with open(file_name, 'r') as f_input:
        csv_input = csv.reader(f_input, delimiter=' ', skipinitialspace=True, )
        long = []
        lat = []
        for col in csv_input:
            x = float(col[0])  # converting to float
            y = float(col[1])
            long.append(x)
            lat.append(y)

    return long, lat


def display_points(long, lat):
    plt.figure()
    plt.gca().set_aspect('equal', adjustable='box')
    plt.ylabel('latitude')
    plt.xlabel('longitude')
    plt.title('longitude vs latitude')
    plt.scatter(lat, long)
    plt.orientation = u'vertical'
    plt.grid('True')
    plt.show()

样本输入:

35.905333, 14.471970
35.896389, 14.477780
35.901281, 14.518173
35.860491, 14.572245
35.807607, 14.535320
35.832267, 14.455894
35.882414, 14.373217
35.983794, 14.336096
35.974463, 14.351006
35.930951, 14.401137

绘图:

enter image description here

这种方法在地图上绘制点,目的是找到从起点到终点的最短路线。忘记了执行此操作的算法,让我们假设我得到了一个表示路由的输出,如下所示:

[2, 1, 0, 9, 8, 7, 6, 5, 4, 3, 2]

如何将这些节点转换回它们所代表的坐标,以便将它们连接到Matplotlib上


Tags: csv函数name算法trueinputdefplt
1条回答
网友
1楼 · 发布于 2024-04-23 11:25:10

将纬度和经度转换为numpy数组:

long = np.array(long)
lat = np.array(lat)

我建议直接在read_two_column_file中进行

如果路径在变量path中,则可以直接执行以下操作:

plt.plot(long[path], lat[path])

相关问题 更多 >