3.5 添加参考线和参考区域
3.5.1 添加参考线参考线是一条或多条贯穿绘图区域的线条,用于为绘图区域中图形数据之间的比较提供参考依据,常见于财务分析、经营分析中,例如目标线、平均线、预算线等。参考线按方向的不同可分为水平参考线和垂直参考线。matplotlib 中提供了 axhline() 和 axvline() 函数,分别用于添加水平参考线和垂直参考线,具体介绍如下。1.使用 axhline() 绘制水平参考线axhline() 函数的语法格式如下所示 :axhline(y=0, xmin=0, xmax=1, linestyle='-', ** kwargs)该函数常用参数的含义如下。·y :表示水平参考线的纵坐标。·xmin :表示水平参考线的起始位置,默认为 0。
·xmax :表示水平参考线的终止位置,默认为 1。·linestyle :表示水平参考线的类型,默认为实线。2.使用 axvline() 绘制垂直参考线axvline() 函数的语法格式如下所示 :axvline(x=0, ymin=0, ymax=1, linestyle='-', ** kwargs)该函数常用参数的含义如下。·x :表示垂直参考线的横坐标。·ymin :表示垂直参考线的起始位置,默认为 0。·ymax :表示垂直参考线的终止位置,默认为 1。·linestyle :表示垂直参考线的类型,默认为实线。在 3.4.1 节绘制的正弦和余弦曲线图中添加参考线,增加的代码如下。# 添加参考线plt.axvline(x=0, linestyle='--')plt.axhline(y=0, linestyle='--')上述代码通过 linestyle 参数将参考线的类型设为虚线,避免了参考线与曲线混淆,关于线条的类型会在第 4 章进行介绍。运行程序,效果如图 3-11 所示。3.5.2 添加参考区域pyplot 模块中提供了 axhspan() 和 axvspan() 函数,分别用于为图表添加水平参考区域和垂直参考区域,具体介绍如下。1.使用 axhspan() 绘制水平参考区域axhspan() 函数的语法格式如下所示 :axhspan(ymin, ymax, xmin=0, xmax=1, ** kwargs)该函数常用参数的含义如下。
·ymin :表示水平跨度的下限,以数据为单位。·ymax :表示水平跨度的上限,以数据为单位。·xmin :表示垂直跨度的下限,以轴为单位,默认为 0。·xmax :表示垂直跨度的上限,以轴为单位,默认为 1。2.使用 axvspan() 绘制垂直参考区域axvspan() 函数的语法格式如下所示 :axvspan(xmin, xmax, ymin=0, ymax=1, ** kwargs)该函数常用参数的含义如下。·xmin :表示垂直跨度的下限。·xmax :表示垂直跨度的上限。在 3.5.1 节绘制的正弦和余弦曲线图中添加参考区域,增加的代码如下。# 添加参考区域plt.axvspan(xmin=0.5, xmax=2.0, alpha=0.3)plt.axhspan(ymin=0.5, ymax=1.0, alpha=0.3)运行程序,效果如图 3-12 所示。3.5.3 实例 4 :全校高二年级各班男女生英语成绩评估某高中高二年级期中模拟考试后,学校对该年级各班各学科的平均成绩进行统计,计算出全体高二年级的英语平均成绩为 88.5,其中高二各班男生、女生的英语平均成绩如表 3-3 所示。根据表 3-3 的数据,将“班级名称”一列的数据作为 x 轴的刻度标签,将“男生”和“女生”两列的数据作为刻度标签对应的数值,使用 bar() 绘制各班级男生、女生英语平均成绩的柱形图,并将高二年级的英语平均成绩作为参考线,比较哪些班级的英语成绩有待提高,具体代码如下。In [5]:# 04_average_score_of_englishimport numpy as npimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif'] = ['SimHei']plt.rcParams['axes.unicode_minus'] = Falsemen_means = (90.5, 89.5, 88.7, 88.5, 85.2, 86.6)women_means = (92.7, 87.0, 90.5, 85.0, 89.5, 89.8)ind = np.arange(len(men_means)) # 每组柱形的 x 位置width = 0.2 # 各柱形的宽度fig = plt.figure()ax = fig.add_subplot(111)ax.bar(ind - width / 2, men_means, width, label=' 男生平均成绩 ')ax.bar(ind + 0.2, women_means, width, label=' 女生平均成绩 ')ax.set_title(' 高二各班男生、 女生英语平均成绩 ')ax.set_ylabel(' 分数 ')ax.set_xticks(ind)ax.set_xticklabels([' 高二 1 班 ', ' 高二 2 班 ', ' 高二 3 班 ', ' 高二 4 班 ',' 高二 5 班 ', ' 高二 6 班 '])# 添加参考线ax.axhline(88.5, ls='--', linewidth=1.0, label=' 全体平均成绩 ')ax.legend(loc="lower right")plt.show()运行程序,效果如图 3-13 所示。图 3-13 中,蓝色的虚线代表高二年级的英语平均成绩。由图 3-13 可知,高二 2 班、4班女生和 5 班、6 班男生的平均成绩均低于高二年级的英语平均成绩。
3.5 Python 数据可视化——图表辅助元素的定制
猜你喜欢
转载自blog.csdn.net/qq_43416206/article/details/132262876
今日推荐
周排行