Из базовой документации :
Для отображения данных на карте их координаты должны быть
приведены в карте проекции координат. Вызов экземпляра класса Basemap
с аргументами lon, lat преобразует lon / lat (в градусах) в x / y
координаты проекции карты (в метрах). Обратное преобразование
сделано, если для необязательного ключевого слова inverse задано значение True.
На странице документации также есть пример. Чтобы приспособить этот пример к вашему варианту использования, я преобразовал нижний левый угол в метры, создал регулярную сетку с интервалом 2000 м (200 м было слишком плотно) и преобразовал сетку обратно в координаты lon / lat, которые затем можно используется drawparallels()
и drawmeridians
.
from matplotlib import pyplot as plt
from mpl_toolkits.basemap import Basemap
import numpy as np
fig, ax = plt.subplots()
lon0 = -74.0224
lat0 = 40.6968
m = Basemap(
projection='mill',
llcrnrlat= 40.6968,
llcrnrlon= -74.0224,
urcrnrlat= 40.8964,
urcrnrlon= -73.8927,
resolution='h',
ax = ax,
)
x0, y0 = m(lon0, lat0)
x = np.arange(20)*2000+x0
y = np.arange(20)*2000+y0
lons, lats = m(x,y,inverse=True)
m.drawcoastlines()
m.drawcountries()
m.drawstates()
m.drawmeridians(lons)
m.drawparallels(lats)
plt.show()
Результат выглядит так:
![result of the above code](https://i.stack.imgur.com/Zxz6a.png)
Надеюсь, это поможет.