2015-01-13 85 views
4

我一直在试图在Basemap对象上绘制箭头已经很久了。我找到了在地图上绘制线条的帮助,但似乎箭头不想出现。如何使用matplotlib在底图对象上绘制箭头?

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

map = Basemap(projection='merc', lat_0 = 57, lon_0 = -135, 
resolution = 'i', area_thresh = 0.1, 
llcrnrlon=-136.25, llcrnrlat=56.0, 
urcrnrlon=-134.25, urcrnrlat=58) 

map.drawcoastlines() 
map.drawcountries() 
map.drawmapboundary() 

lon = -135.3318 
lat = 57.0799 
x,y = map(lon, lat) 
x2, y2 = map(lon+0.5,lat+0.5) 

plt.arrow(x,y,x2-x,y2-y,fc="k", ec="k", linewidth = 4, head_width=10, head_length=10) 
plt.show() 

结果我只得到: http://i.imgur.com/tB6wi2J.png 你可以看到一个头的一点点,但几乎没有。我只是为了争取正确的理由而愚蠢?我一直在摆弄很长一段时间...

编辑:是的我只是愚蠢得到正确的参数。我把10000的头宽和长度和一个箭头是可见的..我认为,因为底图它以米计算,并把我扔了。

回答

2

我只是没有把正确的论点。在使用的规模上,帽子至少为10000 head_width和head_length