最近对geopandas的提交允许将参数传递hatch
给GeoDataFrameplot
上的方法,因此,如果您从最新源安装,并且您有一个GeoDataFrame
named gdf
,您可以这样做:
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)