Присвойте цвет конкретному ребру в графе 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)