在Python Basemap中绘制曲线

时间:2010-12-15 15:11:45

标签: python matplotlib matplotlib-basemap

我想在Basemap地图上绘制弯曲/弧形线。 我可以使用map.plot(x,y,..)绘制一条直线,但是如何使其弯曲/有箭头?

在matplotlib中,这可以使用annotate(..)来完成,但是Basemap没有这个方法。

有什么想法吗?

1 个答案:

答案 0 :(得分: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),虽然有明确记载,但这是一个相当大的缺陷恕我直言。

希望能帮助某人,