osmnx.plot_graph 如何确定哪些边缘获得哪些颜色?
How does osmnx.plot_graph determine which edges get which colors?
我已经学习了这个教程:
https://towardsdatascience.com/creating-beautiful-maps-with-python-6e1aae54c55c
而上面的这个是从中派生的。
他们将边缘颜色列表传递给 plot_graph
函数
像这样:
fig, ax = ox.plot_graph(gdf, node_size=0, bbox = (north, south, east, west),figsize=(height, width),
dpi = 96,bgcolor = bgcolor,
save = False, edge_color=roadColors,
edge_linewidth=roadWidths, edge_alpha=1)
我不认为他们是按照教程指示的方式分配的。
在 github 我发现 get_edge_colors_by_attr
似乎考虑了属性。
颜色是如何分配的?
我之所以这么问是因为我想根据他们的 openstreetmap 标签绘制不同颜色的“高速公路”。
How does osmnx.plot_graph determine which edges get which colors?
你可以看看它是如何做到的here。本质上,它要么将一种颜色应用于所有边,要么,如果您将颜色列表传递给它,它将列表中的第一种颜色分配给图形中的第一条边,将第二种颜色分配给第二条边,将第三种颜色分配给第三条边,等等。
Specifically I am asking because I'd like to plot "highways" in different colors based on their openstreetmap tag.
您可以根据边的高速公路属性值创建颜色列表:
import osmnx as ox
G = ox.graph_from_place('Piedmont, California, USA', network_type='drive')
# assign colors to edges based on "highway" value
hwy_color = {'residential': 'gray',
'secondary': 'r',
'tertiary': 'y',
'tertiary_link': 'b',
'unclassified': 'm'}
edges = ox.graph_to_gdfs(G, nodes=False)['highway']
ec = edges.replace(hwy_color)
# plot graph using these colors
fig, ax = ox.plot_graph(G, edge_color=ec)
此外,您提到了 get_edge_colors_by_attr
,但请注意,根据 the docs,属性必须是数字。
我已经学习了这个教程: https://towardsdatascience.com/creating-beautiful-maps-with-python-6e1aae54c55c 而上面的这个是从中派生的。
他们将边缘颜色列表传递给 plot_graph
函数
像这样:
fig, ax = ox.plot_graph(gdf, node_size=0, bbox = (north, south, east, west),figsize=(height, width),
dpi = 96,bgcolor = bgcolor,
save = False, edge_color=roadColors,
edge_linewidth=roadWidths, edge_alpha=1)
我不认为他们是按照教程指示的方式分配的。
在 github 我发现 get_edge_colors_by_attr
似乎考虑了属性。
颜色是如何分配的?
我之所以这么问是因为我想根据他们的 openstreetmap 标签绘制不同颜色的“高速公路”。
How does osmnx.plot_graph determine which edges get which colors?
你可以看看它是如何做到的here。本质上,它要么将一种颜色应用于所有边,要么,如果您将颜色列表传递给它,它将列表中的第一种颜色分配给图形中的第一条边,将第二种颜色分配给第二条边,将第三种颜色分配给第三条边,等等。
Specifically I am asking because I'd like to plot "highways" in different colors based on their openstreetmap tag.
您可以根据边的高速公路属性值创建颜色列表:
import osmnx as ox
G = ox.graph_from_place('Piedmont, California, USA', network_type='drive')
# assign colors to edges based on "highway" value
hwy_color = {'residential': 'gray',
'secondary': 'r',
'tertiary': 'y',
'tertiary_link': 'b',
'unclassified': 'm'}
edges = ox.graph_to_gdfs(G, nodes=False)['highway']
ec = edges.replace(hwy_color)
# plot graph using these colors
fig, ax = ox.plot_graph(G, edge_color=ec)
此外,您提到了 get_edge_colors_by_attr
,但请注意,根据 the docs,属性必须是数字。