我使用以下代码绘制了一个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,
)
这给了我一张包含多边形边缘的地图:
我想删除这些。到目前为止,我已尝试在贴片中循环,将边缘颜色设置为面部颜色:
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')
以相同方式更新面部颜色可以正常工作:
答案 0 :(得分:1)
事实证明,plot()
绘制了一系列线对象(lines
的{{1}}属性,它们是AxesSubplot
),它们代表了实际的边缘。如果要完全控制边缘外观,则必须更新这些以及补丁的边缘属性(lines.Line2D
)。