首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Geopandas上的Colorbar

Geopandas上的Colorbar
EN

Stack Overflow用户
提问于 2016-03-15 18:29:42
回答 1查看 19.4K关注 0票数 16

我正在尝试在GeoPandas上创建一个Matplotlib颜色条。

代码语言:javascript
复制
import geopandas as gp
import pandas as pd
import matplotlib.pyplot as plt

#Import csv data
df = df.from_csv('data.csv')

#Convert Pandas DataFrame to GeoPandas DataFrame
g_df = g.GeoDataFrame(df)

#Plot
plt.figure(figsize=(15,15)) 
g_plot = g_df.plot(column='column_name',colormap='hot',alpha=0.08)
plt.colorbar(g_plot)

我得到以下错误:

代码语言:javascript
复制
AttributeError                            Traceback (most recent call last)
<ipython-input-55-5f33ecf73ac9> in <module>()
      2 plt.figure(figsize=(15,15))
      3 g_plot = g_df.plot(column = 'column_name', colormap='hot', alpha=0.08)
----> 4 plt.colorbar(g_plot)

...

AttributeError: 'AxesSubplot' object has no attribute 'autoscale_None'

我不确定如何让colorbar工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-18 17:23:20

EDIT:下面引用的PR已合并到地理公园主站中。现在您可以简单地执行以下操作:

代码语言:javascript
复制
gdf.plot(column='val', cmap='hot', legend=True)

色条将被自动添加。

备注:

  • legend=True告诉Geopandas添加colorbar.
  • colormap现在称为cmap.
  • vmin,不再需要vmax

有关更多信息,请参见https://geopandas.readthedocs.io/en/latest/mapping.html#creating-a-legend (通过示例如何调整颜色栏的大小和位置)。

有一个PR可以将其添加到geoapandas (https://github.com/geopandas/geopandas/pull/172)中,但目前,您可以使用此解决方法自己添加它:

代码语言:javascript
复制
## make up some random data
df = pd.DataFrame(np.random.randn(20,3), columns=['x', 'y', 'val'])
df['geometry'] = df.apply(lambda row: shapely.geometry.Point(row.x, row.y), axis=1)
gdf = gpd.GeoDataFrame(df)

## the plotting

vmin, vmax = -1, 1

ax = gdf.plot(column='val', colormap='hot', vmin=vmin, vmax=vmax)

# add colorbar
fig = ax.get_figure()
cax = fig.add_axes([0.9, 0.1, 0.03, 0.8])
sm = plt.cm.ScalarMappable(cmap='hot', norm=plt.Normalize(vmin=vmin, vmax=vmax))
# fake up the array of the scalar mappable. Urgh...
sm._A = []
fig.colorbar(sm, cax=cax)

解决方法来自Matplotlib - add colorbar to a sequence of line plots。您必须自己提供vminvmax的原因是因为colorbar不是基于数据本身添加的,因此您必须说明值和颜色之间应该有什么联系。

票数 45
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36008648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档