1) Я построил график без маршрутов, используя:
ox.plot_graph(Graph)
2) Часть, которой я хочу быть желтого, а синий - это пересечение route1
и route2
:
yellow_and_blue = list(set(route1).intersection(route2))
Часть, которой я хочу быть только желтой, - это разница route1
и route2
:
yellow = list(set(route1).difference(route2))
2) Поскольку мои маршруты route1
и route2
списки идентификаторов OSM, а также yellow_and_blue
и yellow
. Я извлек их координаты x и y, используя:
yellow_and_blue_x = []
yellow_and_blue_y = []
for node in yellow_and_blue:
yellow_and_blue_x += [Graph.nodes[node]['x']]
yellow_and_blue_y += [Graph.nodes[node]['y']]
То же самое работает для yellow
.
3) Теперь у нас есть списки координат x и y маршрутов, которые мы хотели бы чтобы построить график, мы можем использовать
plt.plot(yellow_and_blue_x, yellow_and_blue_y, linestyle = (0,(5,5)), color = 'yellow')
plt.plot(yellow_and_blue_x, yellow_and_blue_y, linestyle = (5,(5,5)), color = 'blue')
и
plt.plot(yellow_x, yellow_y, color = 'yellow')
для построения маршрутов на нашем ранее сгенерированном участке.