最近在
geopandas的提交中,可以通过将
hatch
参数传递给GeoDataFrame上的
plot
方法来进行操作。所以如果你从最新的源代码安装,并且有一个名为
gdf
的
GeoDataFrame
,可以这样做:
gdf.plot(facecolor="#DDDDDD", hatch="//")
您可以基于匹配某个属性来绘制任何子集。从您的示例中,我对数据的结构还不太清楚,但类似这样:
gdf[gdf["key"] == value1].plot(facecolor="#DDDDDD", hatch="//")
gdf[gdf["key"] == value2].plot(facecolor="#DDDDDD", hatch="o")
等等。
最新的pip或conda上可用的geopandas
没有这个功能。您仍然可以将hatch
关键字传递给matplotlib.patches.Polygon
(似乎是您在示例中使用的)来控制样式,像您在上面的示例中所演示的一样:
poly = Polygon(shape, facecolor="#DDDDDD", alpha=alpha, linewidth=0.01, hatch="\\")
在matplotlib图库中提供了更详细的填充演示。
要添加图例,您可以保留已绘制的多边形和相关标签的列表,并将其传递给legend
。因此,在上面的循环内,可以添加以下内容:
polys.append(poly)
labels.append(search_str)
然后,在循环外面:
ax.legend(polys, labels)