更新时间:2022年03月23日10时08分 来源:传智教育 浏览次数:
在之前的Python培训中我们讲到了柱形图,虽然柱形图中可以通过柱形的高度反映每组数据的多少,但是仍然无法让用户精准地知道具体数值。因此,柱形图经常会与注释文本配合使用,在柱形的顶部标注具体数值。2.22节实例中的柱形图描述了阿里巴巴淘宝和天猫平台的GMV,但图中的矩形条缺少具体的数值,因此这里将在柱形图中添加无指向型注释文本,代码如下。
import numpy as np import matplotlib.pyplot as plt plt.rcParams['font.sans-serif'] = ['SimHei'] plt.rcParams['axes.unicode_minus'] = False x = np.arange(1, 8) y = np.array([10770, 16780, 24440, 30920, 37670, 48200, 57270]) bar_rects = plt.bar(x, y, tick_label=["FY2013", "FY2014", "FY2015", "FY2016", "FY2017", "FY2018", "FY2019"], width=0.5) # 添加无指向型注释文本 def autolabel(rects): """在每个矩形条的上方添加一个文本标签,以显示其高度""" for rect in rects: height = rect.get_height() #获取每个矩形条的高度 plt.text(rect.get_x() + rect.get_width() / 2, height + 300, s='{}'.format(height), ha='center', va='bottom') autolabel(bar_rects) plt.ylabel('GMV(亿元)') plt.show()
运行程序,效果如图3-17所示。
与图2-6相比,图3-17的柱形图增加了y轴的标签和注释文本,帮助用户准确地知道各柱形对应的数值。
图3-17 2013—2019财年淘宝和天猫平台的GMV柱形图——添加注释