如何使用matplotlib在Basemap对象上绘制箭头?

时间:2015-01-13 16:12:55

标签: python matplotlib matplotlib-basemap

我一直试图在Basemap对象上绘制箭头已经有一段时间了。我找到了帮助在地图上绘制线条,但看起来箭头似乎不想出现。

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,并且可以看到一个箭头。我认为因为底图它以米为单位计算并且让我失望。

1 个答案:

答案 0 :(得分:3)

我只是没有把论点说得对。在使用的规模上,它至少为10000 head_width和head_length