在python上绘制坐标 - 使用什么数据类型?

时间:2016-05-31 15:39:17

标签: python matplotlib coordinates

我正在开展一项涉及从CSV文档中隔离信息的任务(具体而言,是以纳秒为单位的时间戳以及纬度和经度)。我已成功打印这些值,但现在我想使用matplotlib绘制它。到目前为止,这是我的代码:

import csv
from matplotlib import pyplot as plt

midnight = 1429574400
nsmidnight = 1429574400000000000
ifile  = open('(short file)Converted_radar_tracks_20150421_053822.csv', "rb")
reader = csv.DictReader(ifile, delimiter=';')

rownum = 0

for row in reader:#for each row
    if rownum == 0:
        header = row #define header row
    else:
        print "Timestamp:", long(row['timestamp'])*1000000000+nsmidnight+ int(row['timestamp_nsecs']),"Latitude:", float(row['lat']), "Longitude:", float(row['lon'])
        plt.plot('lat','lon')

    rownum += 1

plt.show()
ifile.close

但是,当我运行它时,我收到此错误消息:

ValueError: Unrecognized character l in format string

我想这可能是因为我使用了错误的数据类型来表示纬度和经度。有没有人有任何建议可以帮助我?

2 个答案:

答案 0 :(得分:0)

当您编写plt.plot('lat','lon')时,它会尝试使用格式字符串lat绘制字符串lon。这不起作用,并为您提供您看到的错误。 plt.plot()想要的参数是纬度和经度列表。例如,

lat = [13, 26, 48]
lon = [51, 17, 19]
plt.plot(lat, lon)
plt.show()

答案 1 :(得分:0)

plt.plot()获取x和y对的列表或数组,而不是传递plt.plot('lat', 'lon')的字符串。你得到的ValueError是由于这个原因。相反,首先将纬度和经度的值放入列表或numpy数组中,然后将它们传递给plt.plot(),如下所示:

lat = [41, 42, 43, 44, 45]
lon = [70, 71, 72, 73, 74]
plt.plot(lat, lon)