使用底图绘制单箭头箭头

时间:2015-07-30 20:07:19

标签: matplotlib matplotlib-basemap

Python的新手,我知道这是一个简单的问题,只有一行答案,但我无法弄清楚。

我正在尝试使用单个经度和纬度坐标点在底图上绘制一个箭箭,但是在尝试绘制箭袋时我遇到了错误。

这是我到目前为止所拥有的:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

lat,lon=28.31393296,-96.63100599
u,v=6.16,-3.02
m=Basemap(projection='mill',llcrnrlon=-96.9,llcrnrlat=28.245,
    urcrnrlon=-96.587,urcrnrlat=28.485,resolution='i')
m.drawcoastlines()
m.fillcontinents(color='coral',lake_color='aqua')
m.drawmapboundary(fill_color='aqua')
m.quiver(lon,lat,u,v,latlon=True)
plt.show()

我收到错误:

Traceback (most recent call last):

File "<ipython-input-46-c277f7618784>", line 1, in <module>
runfile('C:/animationtest.py', wdir='C:')

File "C:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile
execfile(filename, namespace)

File "C:\Anaconda\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
exec(compile(scripttext, filename, 'exec'), glob, loc)

File "C:/animationtest.py", line 41, in <module>
m.quiver(lon,lat,ve,vn,latlon=True)

File "C:\Anaconda\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 556, in with_transform
x1, u = self.shiftdata(x, u)

File "C:\Anaconda\lib\site-packages\mpl_toolkits\basemap\__init__.py", line 4713, in shiftdata
raise ValueError('1-d or 2-d longitudes required')

ValueError: 1-d or 2-d longitudes required

有人可以解释为什么这不起作用吗?

编辑:想出解决方案,必须将lat lon转换为使用线

的地图投影
x,y=m(lon,lat)

然后用

绘制箭袋
m.quiver(x,y,u,v)

我到底需要做什么

0 个答案:

没有答案