在matplotlib 3.4.0之前的版本中,一般使用plt.text方法绘制数据标签。顾名思义,plt.text可以在图像的任何地方绘制指定的文本。基于此,我们只需要在相应数据点的坐标位置绘制相应的值,即可显示数据标签。
参数说明:
# 绘图
plt.figure(figsize = (10,7))
bar1 = plt.bar(x = np.arange(7),height = xiaoming_score,width = 0.35,label = '小明',edgecolor = 'white',color = 'r',tick_label = subjects)
bar2 = plt.bar(x = np.arange(7)+0.35,height = xiaohong_score,width = 0.35,label = '小红')# 标注数值 注:老版本可能没有这个方法,得使用下方做法
plt.bar_label(bar1)
plt.bar_label(bar2)# 补充标题及标签
plt.title('小明、小红各科成绩对比') # 图的标题
plt.xlabel('科目',fontsize = 15) # 横轴标签
plt.ylabel('成绩',fontsize = 15) # 纵轴标签
plt.xticks(np.arange(7)+0.17,subjects,fontsize = 12) # 柱状图横轴坐标各类别标签
plt.legend() # 显示两组柱状图的标签# # 老方法:注释各柱状图的数值,在这里即分数
# for i in range(len(subjects)):
# plt.text(x = i-0.1, y = xiaoming_score[i]+1,s = xiaoming_score[i] ) # s表示注释内容
# for i in range(len(subjects)):
# plt.text(x = i+0.3, y = xiaohong_score[i]+1,s = xiaohong_score[i] )# 显示图像
plt.show()
