如何在特定的经度和纬度上使用 m.scatter 绘制点
How to plot points using m.scatter at certain longitudes and latitudes
假设我有一个名为 indices
的索引数组,如下所示:
[[1, 34, 56]
[2, 54, 34]
[2, 89, 173]
...
[6, 23, 13]]
第一个元素是任意元素。第二个和第三个元素分别代表经度和纬度。我怎样才能基本上忽略每个索引中的第一个元素,并获取索引中的经度和纬度值并使用 m.scatter
在地图上绘制它?
假设您已经实例化了来自底图的地图对象 class。
提取lat值(x列表),long值(y列表),然后你可以调用map.scatter
>>> from operator import itemgetter
>>> indices = [[1, 34, 56], [2, 54, 34], [2, 89, 173], [6, 23, 13]]
>>> x = list (map (itemgetter (1), indices))
>>> y = list (map (itemgetter (2), indices))
>>> map.scatter (*map (x, y))
使用 numpy 数组,您可以将初始数组的第二列和第三列提供给地图,并使用 m.scatter
绘制结果坐标(如果 m
是底图实例)。
请注意,您可能在问题中混合了纬度和经度,我怀疑第二列是纬度,第三列是经度。
import numpy as np
indices = np.array([[1, 34, 56],
[2, 54, 34],
[2, 89, 173],
[6, 23, 13] ])
m = Basemap(...)
x,y = m(indices[:,2], indices[:,1])
m.scatter(x,y)
完整示例:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
m = Basemap(projection='cyl',llcrnrlat=0,urcrnrlat=90,\
llcrnrlon=0,urcrnrlon=180,resolution='c')
m.drawcoastlines()
m.drawcountries()
parallels = np.arange(0.,81,20.)
m.drawparallels(parallels,labels=[False,True,True,False])
meridians = np.arange(0,360.,45.)
m.drawmeridians(meridians,labels=[True,False,False,True])
indices = np.array([[1, 34, 56],
[2, 54, 34],
[2, 89, 173],
[6, 23, 13] ])
x,y = m(indices[:,2], indices[:,1])
m.scatter(x,y, zorder=5)
plt.show()
假设我有一个名为 indices
的索引数组,如下所示:
[[1, 34, 56]
[2, 54, 34]
[2, 89, 173]
...
[6, 23, 13]]
第一个元素是任意元素。第二个和第三个元素分别代表经度和纬度。我怎样才能基本上忽略每个索引中的第一个元素,并获取索引中的经度和纬度值并使用 m.scatter
在地图上绘制它?
假设您已经实例化了来自底图的地图对象 class。
提取lat值(x列表),long值(y列表),然后你可以调用map.scatter
>>> from operator import itemgetter
>>> indices = [[1, 34, 56], [2, 54, 34], [2, 89, 173], [6, 23, 13]]
>>> x = list (map (itemgetter (1), indices))
>>> y = list (map (itemgetter (2), indices))
>>> map.scatter (*map (x, y))
使用 numpy 数组,您可以将初始数组的第二列和第三列提供给地图,并使用 m.scatter
绘制结果坐标(如果 m
是底图实例)。
请注意,您可能在问题中混合了纬度和经度,我怀疑第二列是纬度,第三列是经度。
import numpy as np
indices = np.array([[1, 34, 56],
[2, 54, 34],
[2, 89, 173],
[6, 23, 13] ])
m = Basemap(...)
x,y = m(indices[:,2], indices[:,1])
m.scatter(x,y)
完整示例:
from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt
import numpy as np
m = Basemap(projection='cyl',llcrnrlat=0,urcrnrlat=90,\
llcrnrlon=0,urcrnrlon=180,resolution='c')
m.drawcoastlines()
m.drawcountries()
parallels = np.arange(0.,81,20.)
m.drawparallels(parallels,labels=[False,True,True,False])
meridians = np.arange(0,360.,45.)
m.drawmeridians(meridians,labels=[True,False,False,True])
indices = np.array([[1, 34, 56],
[2, 54, 34],
[2, 89, 173],
[6, 23, 13] ])
x,y = m(indices[:,2], indices[:,1])
m.scatter(x,y, zorder=5)
plt.show()