Я использую OSMNX для извлечения форм парков из Open Street Maps.Я пытаюсь отобразить их как стандартные сюжеты Pyplot, но не могу заставить их работать напрямую.
Скажите, что это мой массив мест:
places =
{'Hyde Park' : 'Hyde Park, London, UK',
'Kensington Gardens' : 'Kensington Gardens, London, UK',
'Regents Park' : 'Regents Park, London, UK',
'Hampstead Heath' : 'Hampstead Heath, London, UK',
'Alexandra Park' : 'Alexandra Park, London, UK',
'Clissold Park' : 'Clissold Park, London, UK',
'Finsbury Park' : 'Finsbury Park, N4 2NQ, London, UK',
'Russell Square' : 'Russell Square, London, UK'
}
Следующее, правильно,отображает сложенные фигуры:
for place in sorted(places.keys()):
query = places[place]
print(query)
G = ox.gdf_from_place(query)
fig, ax = ox.plot_shape(G)
Я не большой эксперт по pyplot / OSMNX, но я понимаю, что для того, чтобы передать граф фигур в подзаговор, мне нужно как-то "извлечьоси».
Однако я знаю, как взять фигуру, преобразовать ее в шейп-файл и отобразить ее в подзаговоре:
import shapefile
n = len(places)
ncols = int(np.ceil(np.sqrt(n)))
nrows = int(np.ceil(n / ncols))
figsize = (ncols * 3, nrows * 3)
fig, axes = plt.subplots(nrows, ncols, figsize=figsize, subplot_kw, {'projection':None})
axes = [item for sublist in axes for item in sublist]
for ax, place in zip(axes, sorted(places.keys())):
query = places[place]
G = ox.gdf_from_place(query)
ox.save_gdf_shapefile(G, folder='shp', filename=place)
shp = shapefile.Reader("shp/"+place+"/"+place+".shp")
for shape in shp.shapeRecords():
x = [i[0] for i in shape.shape.points[:]]
y = [i[1] for i in shape.shape.points[:]]
ax.plot(x,y)
Можно ли сгенерировать тот же график, используя plot_shape () напрямую?