我想在Basemap地图上绘制弯曲/弧形线。 我可以使用map.plot(x,y,..)绘制一条直线,但是如何使其弯曲/有箭头?
在matplotlib中,这可以使用annotate(..)来完成,但是Basemap没有这个方法。
有什么想法吗?
答案 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()
请注意,大圆方法无法处理地图边缘的交叉(as mentioned in the documentation),虽然有明确记载,但这是一个相当大的缺陷恕我直言。
希望能帮助某人,