调用OSMNX plot_footprints()传edge_color触发意外关键字参数报错
报错原因
这个问题和Colab运行环境没有关系,本质是参数名写错了:
edge_color、edge_linewidth是plot_graph()绘制路网时专用的参数,用来控制路网线条的显示样式,plot_footprints()作为绘制建筑、绿地这类面状斑块的函数,本身没有定义这两个形参,传入不存在的参数自然会触发TypeError。plot_footprints()的面轮廓样式参数直接对齐matplotlib原生面状Patch的命名规则:轮廓颜色参数为edgecolor(无中间下划线,可简写为ec),轮廓线宽参数为linewidth(无edge_前缀,可简写为lw),和路网绘图函数的参数命名逻辑不同,记混两个函数的参数就会触发这类报错。
修复方案
把错误的参数名替换为函数支持的合法参数即可,参考代码:
ox.plot.plot_footprints( greens, color="green", # 设置面填充色为绿色 edgecolor="black", # 替换原edge_color参数,设置面轮廓为黑色 linewidth=0.7, # 替换原edge_linewidth参数,可按需调整轮廓粗细 bgcolor="white" )
如果替换参数后仍提示参数不存在,在Colab中执行
!pip install -U osmnx将osmnx升级到最新稳定版即可,极少数远古0.x版本的参数存在细微差异,升级后上述写法可直接运行。
内容的提问来源于stack exchange,提问作者JoScratcherJo
相关产品推荐
相关产品推荐

