使用 Matplotlib 限制气泡图中的标签

我使用以下代码 绘制数据:


fig, (ax) = plt.subplots(1,1, figsize=(12,8))

ax.scatter(x=df['GDP(PPP) per capita'], 

           y=df['Energy use'], 

           s=df['Population']/100000, 

           alpha=0.4,

           c=np.arange(132), 

           cmap='tab10',  

           edgecolors="gray", 

           linewidth=0.2)


# Bubble labels

x,y = df['GDP(PPP) per capita'], df['Energy use']

for i, txt in enumerate(df['Country Name']):

    plt.annotate(txt, (x[i], y[i]))

    print(i, txt, x[i], y[i], df['Population'][i], df['Bubble color'][i])


plt.show()

这是结果:

http://img3.mukewang.com/6285fa670001d02907200467.jpg

如您所见,标签重叠且难以阅读。
我想限制要显示的标签,即只有我从数据框中的“国家名称”列中选择的国家。怎么做?
谢谢。

慕慕森
浏览 166回答 1
1回答

白衣非少年

这是过滤Country Name值的一种方法chosen_countries = ['Norway', 'Canada'] # fill in the list with countries of your choicex,y = df['GDP(PPP) per capita'], df['Energy use']for i, txt in enumerate(df['Country Name']):    if txt in chosen_countries:        plt.annotate(txt, (x[i], y[i]))        print(i, txt, x[i], y[i], df['Population'][i], df['Bubble color'][i])plt.show()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python