2015-01-13 83 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