vas*_*nth 1 matplotlib dataframe pandas geopandas choropleth
我想根据不同国家的比萨分数创建一个简单的世界等值线图。因此我的 DataFrame 看起来像:
merged = merged[['geometry','Avg_score']]
merged.head()
Run Code Online (Sandbox Code Playgroud)
绘制等值线图:
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()
Run Code Online (Sandbox Code Playgroud)
但是,我收到以下错误: 'Line2D' object has no property 'column'。可以在这里找到类似的帖子:'Line2D' object has no property 'kind'。无论如何,这里没有完全解决这个问题!任何帮助将不胜感激,因为我被困在这里太久了。
我遇到了这个完全相同的问题。
简答
尝试将合并的数据框转换为地理数据框
from geopandas import GeoDataFrame
merged = GeoDataFrame(merged)
Run Code Online (Sandbox Code Playgroud)
长答案
由于错误说有一个我的合并对象没有的属性,我尝试检查合并对象的类型。我发现在将数据框与地理数据框合并后,生成的对象是数据框(而不是地理数据框)。
尝试使用以下命令检查合并数据对象的类型
type(merged)
Run Code Online (Sandbox Code Playgroud)
如果它是数据框对象而不是地理数据框对象,geopandas 将不知道如何制作地图。此数据框可以轻松转换为地理数据框,然后使用
首先,确保导入 GeoDataFrame 将数据框转换为地理数据框,
from geopandas import GeoDataFrame
Run Code Online (Sandbox Code Playgroud)
然后将数据框转换为地理数据框,
merged = GeoDataFrame(merged)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3353 次 |
| 最近记录: |