最近提交的geopandas允许将剖面线参数传递给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="\")
要添加图例,可以保留一系列绘制的多边形和关联的标签,并将其传递给图例.因此,在上面的循环中,类似:
polys.append(poly)
labels.append(search_str)
然后,在循环之外:
ax.legend(polys, labels)