在Geopandas,matplotlib中缺少值的问题

时间:2020-11-11 11:01:45

标签: python matplotlib geopandas

我想制作一个圆形的世界地图。 我在数据框世界中添加了一个列,其中包含每个国家/地区的多次发生。我有一个字典,其中包含每个国家/地区的名称以及我自己的数据集中每个国家/地区出现的次数。我已使用以下代码将此字典按国家/地区名称匹配到世界数据框:

 world_countries = world['name'].tolist()
 count_i = []
 for i in world_countries:
    if i in countries_i:
        count_i.append(countries_i[i])
    else:
        count_i.append(np.nan)

 count_u = []
 for i in world_countries:
    if i in countries_u:
        count_u.append(countries_u[i])
    else:
        count_u.append(np.nan)

 world['count_i'] = count_i
 world['count_u'] = count_u

这一切都很好,因此我添加了两个与国家名称匹配的新列,其中没有发生任何事件的国家都只有NaN。

然后我尝试使用以下代码绘制地图:

fig,ax = plt.subplots(1, 1)
 divider = make_axes_locatable(ax)
 cax = divider.append_axes("right", size="5%", pad=0.1)

 world.plot(column='count_u', 
           ax=ax, 
           legend=True,
           cax=cax,
           edgecolor='k',
           legend_kwds={'label':'Developing Countries',
                        'orientation':'vertical'},
           cmap='GnBu',
           figsize=(15, 10),
           missing_kwds={'color': 'lightgrey'})

但是,missing_kwds一直给我一个错误,说'PatchCollection'对象没有属性'missing_kwds'。我刚刚安装了GeoPandas,所以它应该是具有'missing_kwds'的最新系统,但对我不起作用。我尝试绘制另一列以查看该特定列是否存在问题,但这没什么区别。在没有missing_kwds的情况下,该代码有效,但是绘制了所有具有NaN的国家/地区,因此我无法分辨出现fx 2个事件的国家与0个国家(即NaN)之间的差异。怎么了?

1 个答案:

答案 0 :(得分:0)

您可能正在使用旧版的GeoPandas。如果您更新到最新版本(0.8.1),则您的代码将起作用。 missing_kwds是最近添加的内容,在旧版本中不起作用。