用图案填充多边形而不是颜色Geopandas

时间:2017-01-05 15:35:53

标签: python pandas gis geopandas

我正在尝试使用某种模式而不是颜色填充多边形(因为我必须打印项目B& W)。到目前为止,我只是设法用灰度填充它们,但我想采用模式方法,如果有任何方法可以这样做。

我的代码如下:

div.start_display span {
  flex: 1;
  text-align: right;
}

此if语句位于for循环中,该循环遍历info和shape。如果info的某些事实与字符串匹配,我只是为poly设置颜色并将其作为补丁添加到shapefile上。

我也希望以某种方式将这种模式添加到图例中。

提前致谢。

1 个答案:

答案 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)