Присвойте цвет конкретному ребру в графе osmnx на основе заданных значений узлов u,v

Я строю график osmnx: хотя я могу контролировать цвет узлов, я не могу контролировать цвет ребер.

Моя цель - назначить синий цвет только краю, определенному u_node = 4515988732 и v_node=2021402216. Я пытался:

for u,v,k in G.edges(keys=True, data=False):
    if (u==4515988732 and v==2021402216):
       ev='b'

но все края отображаются синим цветом, когда я рисую их с помощью:

fig, ax = ox.plot_graph(G, fig_height=7, node_color=nc, 
node_size=10, node_alpha=0.8, node_zorder=2,
edge_color=ev, edge_linewidth=1)

Я также попробовал:

ev=[(u,v,'b') for u,v,k in G.edges(keys=True, data=False) if 
(u==4515988732 and v==2021402216)]

но в этом случае я получаю неверный аргумент RGBA. Я провел много времени, но я новичок в osmnx, и я не могу найти правильный синтаксис для достижения своей цели: где я могу ошибиться?

1 ответ

Решение

Примеры OSMnx демонстрируют, как окрашивать края в соответствии с некоторыми особенностями.

ec = ['b' if (u==4515988732 and v==2021402216) else 'r' for u, v, k in G.edges(keys=True)]
fig, ax = ox.plot_graph(G, node_color='w', node_edgecolor='k', node_size=30, 
                           node_zorder=3, edge_color=ec, edge_linewidth=3)
Другие вопросы по тегам