osmnx 补充笔记:get_edge_colors_by_attr &get_node_colors_by_attr
Posted UQI-LIUWJ
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了osmnx 补充笔记:get_edge_colors_by_attr &get_node_colors_by_attr相关的知识,希望对你有一定的参考价值。
0 数据部分
与osmnx 笔记: plot_graph_route & plot_graph_routes_UQI-LIUWJ的博客-CSDN博客 中1.1,1.2一致
edges_sh['length']=-edges_sh['length']
#取负号是为了让之后的可视化更好看些,没有实际意义
nx.set_edge_attributes(G_, edges_sh['length'], 'length')
#将 edges_sh['length']设置为 边的属性 length
1 get_edge_colors_by_attr
1.1 基本使用方法
根据指定的边属性,或者各条边的颜色
osmnx.plot.get_edge_colors_by_attr(
G,
attr,
num_bins=None,
cmap='viridis',
start=0,
stop=1,
na_color='none',
equal_size=False)
1.2 参数说明
G (networkx.MultiDiGraph) | 输入图 |
attr (string) | 边属性的名称(也就是我们用nx.set_edge_attributes 设置的属性名称) |
num_bins (int) | 如果为None,则线性映射一个颜色到每个值。 否则,给这几个箱子赋值,然后给每个箱子分配颜色。 |
cmap (string) | |
start (float) | 颜色空间的起始位置 |
stop (float) | 颜色空间的结束位置 |
na_color (string) | 给缺省值的颜色 |
1.3 举例
ox.plot.plot_graph(G_,
edge_color=ox.plot.get_edge_colors_by_attr(
G_,
'length',
num_bins=3,
cmap='RdYlGn'),
figsize=(100,20))
1.3.1 缺省值
maxspeed这一列,有很多的缺省值
edges_sh['maxspeed']=pd.to_numeric(edges_sh['maxspeed'])
#类型转换,从string转换至 float
nx.set_edge_attributes(G_, edges_sh['maxspeed'], 'max_speed')
#同样,设置边属性名称
ox.plot.plot_graph(G_,
edge_color=ox.plot.get_edge_colors_by_attr(
G_,
'max_speed',
num_bins=3,
cmap='RdYlGn',
na_color='black'),
figsize=(100,20))
#N属性为aN的边会被画成黑色
2 get_node_colors_by_attr
osmnx.plot.get_node_colors_by_attr(
G,
attr,
num_bins=None,
cmap='viridis',
start=0,
stop=1,
na_color='none',
equal_size=False)
和get_edge_colors_by_attr 几乎一模一样
nx.set_node_attributes(G_,nodes_sh['street_count'],'street')
ox.plot.plot_graph(G_,
node_color=ox.plot.get_node_colors_by_attr(
G_,
'street',
num_bins=3,
cmap='RdYlGn',
na_color='black'),
node_size=100,
figsize=(100,20))
以上是关于osmnx 补充笔记:get_edge_colors_by_attr &get_node_colors_by_attr的主要内容,如果未能解决你的问题,请参考以下文章
Osmnx 错误:模块“osmnx.elevation”没有属性“add_node_elevations_raster”