Python 如何在特定经度和纬度使用m.scatter绘制点

Python 如何在特定经度和纬度使用m.scatter绘制点,python,matplotlib,indexing,matplotlib-basemap,Python,Matplotlib,Indexing,Matplotlib Basemap,假设我有一个名为index的索引数组,如下所示: [[1, 34, 56] [2, 54, 34] [2, 89, 173] ... [6, 23, 13]] 第一个元素是任意元素。第二和第三个元素分别代表经度和纬度。我如何基本上忽略每个索引中的第一个元素,并获取索引中的经度和纬度值,然后使用m.scatter?将其绘制在地图上,假设您已从Basemap类实例化了map对象 提取纬度值(x列表)、长值(y列表),然后可以调用map.scatter >>> from o

假设我有一个名为
index
的索引数组,如下所示:

[[1, 34, 56]
 [2, 54, 34]
 [2, 89, 173]
 ...
 [6, 23, 13]]

第一个元素是任意元素。第二和第三个元素分别代表经度和纬度。我如何基本上忽略每个索引中的第一个元素,并获取索引中的经度和纬度值,然后使用
m.scatter

将其绘制在地图上,假设您已从Basemap类实例化了map对象

提取纬度值(x列表)、长值(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
是Basemap实例)

让我提一下,你可能在问题中混淆了纬度和经度,我怀疑第二列是纬度,第三列是经度

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()

谢谢您的回复。但是,我在map.scatter(map(x,y))行中遇到了一个错误。它说
TypeError:with_transform()至少接受3个参数(2个给定)
啊,对不起,我将调用
map(x,y)
更改为
*map(x,y)
,我需要解压缩结果,因为map.scatter接受2个位置argsHm,同一行中似乎会出现另一个错误
ValueError:使用序列设置数组元素。
不太确定这是关于什么的。这个问题与您的问题有多大不同?