我已经构建了一个散点图,它使用了来自多索引数据框的数据。指数是国家和年份
fig,ax=plt.subplots(1,1)
rel_pib=welfare["rel_pib_pc"].loc[:,1960:2010].groupby("country").mean()
rel_lambda=welfare["Lambda"].loc[:,1960:2010].groupby("country").mean()
ax.scatter(rel_pib,rel_lambda)
ax.set_ylim(0,2)
ax.set_ylabel('Bienestar(Lambda)')
ax.set_xlabel('PIBPc')
ax.plot([0,1],'red', linewidth=1)
我想用国家名称(如果可能,还有Lambda值)注释每个点。我有以下代码
for i, txt in enumerate(welfare.index):
plt.annotate(txt, (welfare["rel_pib_pc"].loc[:,1960:2010].groupby("country").mean()[i], welfare["Lambda"].loc[:,1960:2010].groupby("country").mean()[i]))
我不知道如何表明我想要国家名称,因为给定国家的所有lambda
和pib_pc
值都作为单个值给出,因为我使用的是.mean()
函数
我试过使用.xs()
,但我试过的所有组合都不起作用
我使用了以下测试数据:
然后,为了生成散点图,我使用了以下代码:
并得到如下结果:
正确生成批注的技巧是:
我还添加了ax.setxlim(190280),以便在 图片矩形。也许你不需要它
相关问题 更多 >
编程相关推荐