Построение изогнутой линии в Python BaseMap
-
10-10-2019 - |
Вопрос
Я хотел бы построить изогнутые/артистые линии на карте BaseMap. Я могу построить прямую линию с помощью map.plot (x, y, ..), но как сделать ее изогнутыми/иметь стрелки?
В Matplotlib это можно сделать, используя аннотат (..), но у BaseMap нет этого метода.
Любые идеи?
Решение
Это очень старый вопрос, но я подумал, что в любом случае может быть хорошо ответить. Когда вы сказали изогнутые линии, я предположил, что вы имели в виду рисование Большой круг. Анкет Есть пример того, чтобы сделать именно это в Документация 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()
Обратите внимание, что метод великого круга не может обрабатывать пересечение краев карты (Как упоминалось в документации), который, хотя и четко задокументирован, является довольно серьезным недостатком.
Надеюсь, это кому -то поможет,