在Python Basemap中绘制曲线线条

4
我希望在Basemap地图上绘制曲线/弧线。我可以使用map.plot(x,y,..)绘制直线,但如何使其成为曲线/带箭头的曲线呢?
在matplotlib中,可以使用annotate(..)实现此目的,但Basemap没有这个方法。
有什么想法吗?

好的,找到了一个解决方案,即简单地在matplotlib.pyplot上绘制,而不是在地图对象上绘制。然而,这样做不允许我像使用线条“环绕”地球一样进行操作。 - Ash
1个回答

4
这是一个非常古老的问题,但我认为回答一下可能是有好处的。当你说曲线时,我假设你指的是绘制大圆。在basemap文档中有一个做到了这一点的例子,我已经修改过它,使得更容易自己进行修改:
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

注意,大圆方法无法处理地图边缘的交叉(如文档中所述),虽然这一点已经清楚地记录下来,但在我看来,这是一个相当重大的缺陷。希望能对大家有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接