2010-12-15 142 views
4

我想繪製底圖貼圖上的曲線/弧線。 我可以繪製使用map.plot(x,y,..)的直線,但是如何使它彎曲/有箭頭?在Python中繪製曲線底圖

在matplotlib中,可以使用annotate(..)完成此操作,但Basemap不具有此方法。

任何想法?

+0

好,找到一個解決方案,即簡單地畫上matplotlib.pyplot而不是地圖對象。但是,這不允許我做一些事情,比如用線條「環繞」地球 – Ash 2010-12-17 09:07:55

回答

3

這是一個非常古老的問題,但我認爲它可能是很好的答案。當你說曲線時,我假定你的意思是畫一個great circle。目前正是這樣做的basemap documentation,我已經修改,以使多一點容易修改自己的例子:

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

m = Basemap(projection='cyl') 

p0_ll = -73.98, 40.78 
p1_ll = 0.08, 51.53 

m.drawgreatcircle(p0_ll[0], p0_ll[1], p1_ll[0], p1_ll[1], 
        linewidth=2, color='b') 
m.drawcoastlines() 
m.fillcontinents() 

plt.show() 

enter image description here

注意,大圓方法無法處理的交叉地圖邊緣(as mentioned in the documentation),雖然有明確的文件記錄,但它是一個相當主要的缺陷恕我直言。

希望幫助別人,