我正在尝试使用某种模式而不是颜色填充多边形(因为我必须打印项目B& W)。到目前为止,我只是设法用灰度填充它们,但我想采用模式方法,如果有任何方法可以这样做。
我的代码如下:
div.start_display span {
flex: 1;
text-align: right;
}
此if语句位于for循环中,该循环遍历info和shape。如果info的某些事实与字符串匹配,我只是为poly设置颜色并将其作为补丁添加到shapefile上。
我也希望以某种方式将这种模式添加到图例中。
提前致谢。
答案 0 :(得分:4)
最近对geopandas的提交允许将hatch
参数传递给GeoDataFrame上的plot
方法,因此如果您从最新源安装,并且您有{{1}命名为GeoDataFrame
,你可以这样做:
gdf
然后,您可以根据匹配的某些属性绘制所需的任何子集。从您的示例中我不清楚您的数据是如何构建的,但是类似于:
gdf.plot(facecolor="#DDDDDD", hatch="//")
等等。
pip或conda上最新的gdf[gdf["key"] == value1].plot(facecolor="#DDDDDD", hatch="//")
gdf[gdf["key"] == value2].plot(facecolor="#DDDDDD", hatch="o")
没有此功能。您仍然可以将geopandas
关键字传递给hatch
(这似乎就是您在示例中使用的那个)来控制样式,在上面的示例中只是:
matplotlib.patches.Polygon
matplotlib gallery中提供了绘制阴影的更全面的演示。
要添加图例,您可以保留已绘制多边形和相关标签的列表,并将其传递给 poly = Polygon(shape, facecolor="#DDDDDD", alpha=alpha, linewidth=0.01, hatch="\\")
。所以,在上面的循环中,例如:
legend
然后,在你的循环之外:
polys.append(poly)
labels.append(search_str)