在地图上绘制数据点
plot data points on map
尝试从名为 test_gps.csv 的 CSV 文件在地图上绘制 gps 坐标时出现错误:
ValueError: Some errors were detected !
Line #1 (got 2 columns instead of 2)
Line #2 (got 2 columns instead of 2)
...
我的代码是:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
airports = np.genfromtxt("test_gps.csv",
delimiter=';',
dtype=[('lat', np.float32), ('lon', np.float32)],
usecols=(1, 2))
fig = plt.figure()
themap = Basemap(projection='gall',
llcrnrlon = -15,
llcrnrlat = 28,
urcrnrlon = 45,
urcrnrlat = 73,
resolution = 'l',
area_thresh = 100000.0,
)
themap.drawcoastlines()
themap.drawcountries()
themap.fillcontinents(color = 'gainsboro')
themap.drawmapboundary(fill_color='steelblue')
x, y = themap(airports['lon'], airports['lat'])
themap.plot(x, y,
'o',
color='Indigo',
markersize=4
)
plt.show()
CSV 的格式为:
-344.586.792;-585.306.702
-314.071.598;-641.856.689
-3.435.215;-587.938.194
-346.999.893;-583.838.615
-517.951.889;-594.954.567
-517.951.889;-594.954.567
474.808.006;97.561.398
我尝试将数据格式更改为其他扩展名和分隔符,但我仍然得到相同的 error.Any 想法我做错了什么?!谢谢
这是因为 usecols 中的索引从 0 而不是 1 开始。并且代码期望另一列读取数据并抛出错误。
代码中的此更改能够读取值。
airports = np.genfromtxt("test_gps.csv",
delimiter=';',
dtype=[('lat', np.float32), ('lon', np.float32)],
usecols=(0, 1))
另外请尝试将 .csv 文件中的值更改为只有一位小数,因为这些值被读取为 nan
,如果它有两位小数。
尝试从名为 test_gps.csv 的 CSV 文件在地图上绘制 gps 坐标时出现错误:
ValueError: Some errors were detected !
Line #1 (got 2 columns instead of 2)
Line #2 (got 2 columns instead of 2)
...
我的代码是:
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap
airports = np.genfromtxt("test_gps.csv",
delimiter=';',
dtype=[('lat', np.float32), ('lon', np.float32)],
usecols=(1, 2))
fig = plt.figure()
themap = Basemap(projection='gall',
llcrnrlon = -15,
llcrnrlat = 28,
urcrnrlon = 45,
urcrnrlat = 73,
resolution = 'l',
area_thresh = 100000.0,
)
themap.drawcoastlines()
themap.drawcountries()
themap.fillcontinents(color = 'gainsboro')
themap.drawmapboundary(fill_color='steelblue')
x, y = themap(airports['lon'], airports['lat'])
themap.plot(x, y,
'o',
color='Indigo',
markersize=4
)
plt.show()
CSV 的格式为:
-344.586.792;-585.306.702
-314.071.598;-641.856.689
-3.435.215;-587.938.194
-346.999.893;-583.838.615
-517.951.889;-594.954.567
-517.951.889;-594.954.567
474.808.006;97.561.398
我尝试将数据格式更改为其他扩展名和分隔符,但我仍然得到相同的 error.Any 想法我做错了什么?!谢谢
这是因为 usecols 中的索引从 0 而不是 1 开始。并且代码期望另一列读取数据并抛出错误。
代码中的此更改能够读取值。
airports = np.genfromtxt("test_gps.csv",
delimiter=';',
dtype=[('lat', np.float32), ('lon', np.float32)],
usecols=(0, 1))
另外请尝试将 .csv 文件中的值更改为只有一位小数,因为这些值被读取为 nan
,如果它有两位小数。