Python Geopandas、matplotlib中缺少值的问题
我想做一张cloropleth世界地图。 我已经在dataframe world中添加了一个列,其中包含每个国家的一些事件。我有一本字典,上面有每个国家的名字和在我自己的数据集中每个国家出现的次数。我使用以下代码按countryname将此词典与world dataframe进行了匹配:Python Geopandas、matplotlib中缺少值的问题,python,matplotlib,geopandas,Python,Matplotlib,Geopandas,我想做一张cloropleth世界地图。 我已经在dataframe world中添加了一个列,其中包含每个国家的一些事件。我有一本字典,上面有每个国家的名字和在我自己的数据集中每个国家出现的次数。我使用以下代码按countryname将此词典与world dataframe进行了匹配: world_countries = world['name'].tolist() count_i = [] for i in world_countries: if i in countries_
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”,但它对我来说不起作用。我曾尝试绘制一个不同的列,以查看该特定列是否存在问题,但这没有任何区别。在没有遗漏的情况下,代码可以工作,但绘制了所有具有NaN的国家,因此我无法区分发生fx 2的国家和具有0的国家之间的差异,即NaN。出了什么问题?您可能正在使用旧版本的GeoPandas。如果更新到最新版本(0.8.1),代码将正常工作<代码>missing_kwds是最近添加的,在旧版本中不起作用。啊,谢谢!我上周刚安装了GeoPandas,但我有0.6.1。如何更新Geopandas?取决于它是通过
pip
还是conda
安装的。因为你上周得到了0.6.1,我不确定它的源代码,但这将是一个快速的谷歌解决方案(例如如何更新python包)。我最初使用的是pip
,现在使用的是pip安装geopandas——升级
,升级到0.8.1——现在就可以了!谢谢:)您可以接受答案,将问题标记为已解决。