来自Geopandas GeoDataFame的Choropleth地图

AJG*_*519 5 python matplotlib pandas geopandas

我正在尝试从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')
Run Code Online (Sandbox Code Playgroud)

这有效,虽然我找不到太多文档.我希望能够添加一个显示分位数截止值的图例,但看起来Geopandas图表目前仅允许基于分类数据的图例.有没有人为此工作?

另外,我希望能够调整多边形轮廓宽度.这可能吗?

作为另一种选择,我一直在使用matplotlib中的多边形补丁.这似乎涉及更多,但似乎提供了更多的自定义选项.如果有必要沿着这条路线建立一个传奇,我可以跟进另一个问题,到目前为止我将包括我的代码.

谢谢您的帮助.

jor*_*ris 17

以下补丁集成在geopandas中,因此您现在可以做到:

tracts.plot(column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd', legend=True)
Run Code Online (Sandbox Code Playgroud)

plot_dataframe对geopandas 的功能做了一个小补丁,以便在使用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)
Run Code Online (Sandbox Code Playgroud)

得到这样的数字:

在此输入图像描述