如何解决“ Line2D”对象没有属性“ column”
我想针对不同国家的比萨得分创建一个简单的世界choropleth地图。因此,我的DataFrame看起来像:
merged = merged[['geometry','Avg_score']]
merged.head()
要绘制Choropleth映射:
fig,ax = plt.subplots(1,figsize=(15,10))
ax.axis('off')
ax.set_title('Education Ranking',fontdict={'fontsize': '35','fontweight' : '3'})
merged.plot(column='Avg_score',cmap='Blues_r',scheme='User_Defined',classification_kwds=dict(bins=[325,416,463,499,591]),edgecolor = 'black',linewidth=0.7,ax=ax,legend= True)
leg = ax.get_legend()
leg.set_bbox_to_anchor((1,0.7,0.2,0.2))
plt.show()
但是,出现以下错误: “ Line2D”对象没有属性“列” 。 可以在这里找到类似的帖子:'Line2D' object has no property 'kind'。无论如何,这里没有完全解决此问题!由于我在这里停留的时间太长,任何帮助将不胜感激。
解决方法
我遇到了同样的问题。
简短回答
尝试将合并的数据框转换为地理数据框
from geopandas import GeoDataFrame
merged = GeoDataFrame(merged)
长期回答
由于错误表明存在合并对象没有的属性,因此我尝试检查合并对象的类型。我发现在将数据框与地理数据框合并后,生成的对象是一个数据框(而不是地理数据框)。
尝试使用来检查合并数据对象的类型
type(merged)
如果它是一个数据框对象,而不是一个地理数据框对象,则地理熊猫将不知道如何制作地图。此数据框可以轻松转换为地理数据框,然后使用
进行绘制首先,请确保导入GeoDataFrame以将数据框转换为地理数据框,
from geopandas import GeoDataFrame
然后将数据框转换为地理数据框,
merged = GeoDataFrame(merged)
,
当不使用时,问题已解决
merged = df.merge(map_df,how = 'left',on = 'Country')
我使用了合并后的DataFrame
merged = map_df.set_index('COUNTRY').join(df.set_index('Country')).
仍然不确定为什么这要优于其他方法。但是,此更改后没有遇到任何问题!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。