Вопрос

Я хотел бы построить изогнутые/артистые линии на карте 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()

enter image description here

Обратите внимание, что метод великого круга не может обрабатывать пересечение краев карты (Как упоминалось в документации), который, хотя и четко задокументирован, является довольно серьезным недостатком.

Надеюсь, это кому -то поможет,

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top