【问题标题】:Choropleth map from Geopandas GeoDataFame来自 Geopandas GeoDataFame 的 Choropleth 地图
【发布时间】:2015-10-23 16:57:06
【问题描述】:

我正在尝试从 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 中使用多边形补丁。这似乎涉及更多,但似乎确实提供了更多自定义选项。如果有必要沿着这条路线走下去以建立一个传奇,我可以跟进另一个问题,并将包括我到目前为止的代码。

感谢您的帮助。

【问题讨论】:

  • tracts.plot(..) 返回一个 Axes 对象,您可以从该对象开始使用 matplotlib 调整图形。
  • @joris 是的,我明白了。我用它来添加标题、删除轴标签等。但是,我对 matplotlib 不太熟悉,并且不确定如何添加图例或更改多边形轮廓的粗细。谢谢
  • 要添加颜色条作为图例,您需要颜色图。我正在查看源代码,而这个颜色图似乎只能从 plot_dataframe 函数中访问。所以也许现在修补plot_dataframe 来满足你的需要会更容易。
  • @joris,感谢您的回复。所以澄清一下,你建议我编辑 plot_dataframe 函数的代码(在这里找到:github.com/geopandas/geopandas/blob/master/geopandas/…)以添加颜色条图例以及获得调整多边形轮廓宽度的能力?
  • 我有一个初始版本,如果你有兴趣的话,明天把它放在一个要点上

标签: python pandas matplotlib geopandas


【解决方案1】:

以下补丁已集成在 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)

得到这样的数字:

【讨论】:

  • 这太棒了——这样的改进。是否有任何关于将基于此代码的内容直接导入 Geopandas 的讨论?
  • 是的,这同时被合并到 geopandas 中:github.com/geopandas/geopandas/pull/210(我会更新我的答案)
【解决方案2】:

要调整多边形的轮廓宽度,你可以像这样使用“linewidth”:

tracts.plot(column='CRIME', scheme='QUANTILES', k=3, colormap='OrRd', linewidth=0.1)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-06-19
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    相关资源
    最近更新 更多