参考链接:
plt.annotate的用法
https://zhuanlan.zhihu.com/p/32501335
pandas中to_csv的用法
https://blog.csdn.net/toshibahuai/article/details/79034829
个人部分代码及其说明:
#样本数据中剩余数据的散点图,x轴为‘GDP per capital’ y轴为‘Life satisfaction’ 画布大小5*3
sample_data.plot(kind = 'scatter', x = 'GDP per capital', y = 'Life satisfaction', figsize = (5,3))
#显示
# plt.show()
#将x轴设置为(0-60000),y轴设置为(0-10)
plt.axis([0, 60000, 0, 10])
#用字典表示标注的地点的文本信息以及文本放置的位置,即国家名称。这里的xy和gdp以及life_satisfaction没有关系,位置是自己调出来的
position_text = {
"Hungary":(3000,1),
"Korea":(18000,1.7),
"France":(29000,2.4),
"Australia":(40000,3.0),
"United States":(52000,3.8)
}
#for循环在图标中标注出需要标注的点
for country, pos_text in position_text.items():
#这里的x是gdp,y是life_satisfaction
pos_data_x, pos_data_y = sample_data.loc[country]
#将United States 命名为U.S.
country = "U.S." if country == "United States" else country
#用一个箭头指向要注释的地方,再写上一段话的行为,叫做annotate,shrink表示箭头收缩的长度,shrink越小箭头越长
plt.annotate(country, xy = (pos_data_x, pos_data_y), xytext = pos_text,
arrowprops = dict(facecolor = 'black', width = 0.5, shrink = 0.1, headwidth = 5))
#ro表示用红色圆点标记,red_dot:红点
plt.plot(pos_data_x, pos_data_y, "ro")
save_fig("money_happy_scatterplot")
#显示内容,红点是文本国家的在途中实际的坐标,position_text是文本的坐标,
plt.show()
运行结果图示: