在Python Basemap中绘制曲线
我想在Basemap地图上画一些弯曲的线条。 我可以用map.plot(x,y,..)画一条直线,但我该怎么把它变成弯曲的或者加上箭头呢?
在matplotlib中,可以用annotate(..)来实现这个效果,但Basemap没有这个方法。
有没有什么好主意呢?
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()
需要注意的是,大圆的方法无法处理地图边缘的交叉问题(文档中有提到),虽然这个问题有明确说明,但在我看来这是一个相当大的缺陷。
希望这对某些人有帮助,