更新Geopandas图中的补丁边缘颜色

时间:2017-07-11 12:29:18

标签: python pandas matplotlib geopandas

我使用以下代码绘制了一个GeoDataFrame作为一个等值区域(geopandas 0.2.1,matplotlib 2.0.2,在Jupyter笔记本中,使用%inline

fig, ax = plt.subplots(
    1,
    figsize=(16., 12.),
    dpi=100,
    subplot_kw=dict(aspect='equal'),
)

base = imd_gdf.dropna().plot(
    ax=ax,
    alpha=1.,
    column="Rental_Count",
    scheme="fisher_jenks",
    k=7,
    cmap="viridis",
    linewidth=0.1,
    edgecolor='black',
    legend=True,
)

这给了我一张包含多边形边缘的地图:

enter image description here

我想删除这些。到目前为止,我已尝试在贴片中循环,将边缘颜色设置为面部颜色:

for p in ax.patches:
    nc = p.get_facecolor()
    p.set_edgecolor(nc) 

但即使我在循环中指定单一颜色,它也没有效果。使用p.set_color(nc) p.set_linewidth(0.0)或尝试将线宽设置为0均无效。 我在这里错过了什么?使用p.set_facecolor('white')以相同方式更新面部颜色可以正常工作:

enter image description here

1 个答案:

答案 0 :(得分:1)

事实证明,plot()绘制了一系列线对象(lines的{​​{1}}属性,它们是AxesSubplot),它们代表了实际的边缘。如果要完全控制边缘外观,则必须更新这些以及补丁的边缘属性(lines.Line2D)。