【问题标题】:Plotting curved line in Python Basemap在 Python Basemap 中绘制曲线
【发布时间】:2011-05-25 23:40:08
【问题描述】:

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

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

有什么想法吗?

【问题讨论】:

  • 好的,找到了一种解决方案,即简单地在 matplotlib.pyplot 上绘制而不是地图对象。但是,这不允许我做诸如用线“环绕”地球之类的事情

标签: python matplotlib matplotlib-basemap


【解决方案1】:

这是一个非常古老的问题,但我认为无论如何回答它可能会很好。当你说曲线时,我以为你的意思是画一个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),尽管已明确记录,但恕我直言,这是一个相当大的缺陷。

希望对某人有所帮助,

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-11
    • 2017-09-04
    • 1970-01-01
    • 2020-11-27
    • 2021-05-25
    • 2014-09-20
    相关资源
    最近更新 更多