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

Я строю график 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 Ответ

0 голосов
/ 03 января 2019

Примеры 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)
...