我正在开展一项涉及从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
我想这可能是因为我使用了错误的数据类型来表示纬度和经度。有没有人有任何建议可以帮助我?
答案 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)