在 python 的 OSMnx 中以速度限制为条件绘制边缘

Plot edges conditional on speed limit in python's OSMnx

我需要绘制以 speed_kph 值为条件的边,使得 speed_kph > A 的边是颜色 X,而 speed_kph < A 的边是颜色 Y。这可能吗在 OSMnx 中?

来自: map = ox.graph_from_place('Paradise, California', network_type='drive')

我可以绘制:ox.plot_graph(map,bgcolor='#FFFFFF',edge_color='#000000',node_color='#000000');

按照其他文档中的描述估算速度和行程时间: map_cons_speed = ox.add_edge_speeds(map) map_cons_speed = ox.add_edge_travel_times(map_cons_speed)

然后提取边:gdf_nodes, gdf_edges = ox.graph_to_gdfs(map_cons_speed)

但我无法弄清楚情节如何以限速为条件。

有人有什么想法吗?预先感谢您的宝贵时间!

根据该属性创建边缘颜色列表:

import osmnx as ox
G = ox.graph_from_place('Paradise, California', network_type='drive')
G = ox.add_edge_speeds(G)
ec = ['y' if d < 50 else 'r' for u, v, d in G.edges(data='speed_kph')]
fig, ax = ox.plot_graph(G, node_alpha=0.1, edge_color=ec)

或者使用plot.get_edge_colors_by_attr函数根据属性值从颜色图中分配颜色:

import osmnx as ox
G = ox.graph_from_place('Paradise, California', network_type='drive')
G = ox.add_edge_speeds(G)
ec = ox.plot.get_edge_colors_by_attr(G, 'speed_kph', cmap='plasma')
fig, ax = ox.plot_graph(G, node_alpha=0.1, edge_color=ec)