我正在尝试从Geopandas GeoDataFrame中的多边形制作一个等值区域图。我想通过其中一个GeoDataFrame列中的值的分位数来对多边形进行符号化。我正在试图找出不同的选择,看看哪种最适合我的需求。对此有任何建议将不胜感激。
看来Geopandas确实有能力做到这一点:http://nbviewer.ipython.org/github/geopandas/geopandas/blob/master/examples/choropleths.ipynb
tracts.plot(column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd')
虽然我找不到太多文档,但仍有效。我希望能够添加一个显示分位数截止值的图例,但看起来Geopandas图表目前仅允许基于分类数据的图例。有没有人为此做过工作?
此外,我希望能够调整多边形轮廓宽度。这可能吗?
作为替代选项,我一直在使用matplotlib中的多边形补丁。这似乎涉及更多,但似乎提供了更多的自定义选项。如果有必要沿着这条路线建立一个传奇,我可以跟进另一个问题,到目前为止我将包括我的代码。
感谢您的帮助。
答案 0 :(得分:17)
以下补丁已集成在geopandas中,因此您现在可以执行以下操作:
tracts.plot(column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd', legend=True)
我对geopandas的plot_dataframe
函数做了一个小补丁,以便在使用PySAL方案时启用图例。您可以在此处找到它:http://nbviewer.ipython.org/gist/jorisvandenbossche/d4e6efedfa1e4e91ab65(调整仅在if scheme is not None:
之后的几行中。
这可以让您执行以下操作:
ax = plot_dataframe(tracts, column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd', legend=True)
得到这样的数字:
答案 1 :(得分:0)
要调整多边形轮廓的宽度,可以使用“ linewidth”,如下所示:
tracts.plot(column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd', linewidth=0.1)