Matplotlib 参考区域函数
在 Matplotlib 中,我们可以使用 axhspan() 函数来添加一个水平方向的参考区域,也可以使用 axvspan() 函数来添加一个垂直方向的参考区域。
其中,axhspan 是 “axis horizontal span(水平参考区域)” 的缩写,axvspan 是 “axis vertical span(垂直参考区域)” 的缩写。
语法:
plt.axhspan(
ymin,
ymax,
xmin=0,
xmax=1,
facecolor='0.8',
alpha=0.5,
edgecolor=None,
linewidth=None,
zorder=None,
**kwargs
)
plt.axvspan(
xmin,
xmax,
ymin=0,
ymax=1,
facecolor='0.8',
alpha=0.5,
edgecolor=None,
linewidth=None,
zorder=None,
**kwargs
)说明:
对于 axhspan() 函数来说,它接收以下参数(axvspan() 函数类似)。
ymin(必选):定义区域的起始 y 坐标。ymax(必选):定义区域的结束 y 坐标。xmin(可选,默认:0):水平参考区域起始位置的 x 轴坐标,取值范围为 0 到 1,表示从 Axes 的左边界到右边界的比例。xmax(可选,默认:1):水平参考区域结束位置的 x 轴坐标,取值范围为 0 到 1,默认为 1。facecolor(可选,默认:'0.8'):定义区域的填充颜色,默认为灰色 ('0.8')。alpha(可选,默认:0.5):定义区域的透明度,取值范围为 0 到 1。edgecolor(可选):定义区域的边框颜色,默认为 None ( 无边框 )。linewidth(可选):定义区域的边框线宽。zorder(可选):定义区域的绘制层级。**kwargs:其他 matplotlib.patches.Polygon 属性。
注意: axhspan() 和 axvspan() 函数默认在当前的 Axes 对象上绘制参考区域。xmin 和 ymin 的默认值为 0,xmax 和 ymax 的默认值为 1,这意味着参考区域默认会覆盖整个坐标轴的范围。
Matplotlib 参考区域示例
接下来,我们通过几个简单的例子来讲解一下 Matplotlib 是如何设置参考区域的。
示例 1:Matplotlib 设置水平参考区域
import matplotlib.pyplot as plt
# 设置
plt.rcParams['font.family'] = ['SimHei', 'PingFang SC']
plt.rcParams['axes.unicode_minus'] = False
# 绘图
x = range(1, 16)
y = [36.0, 36.1, 36.6, 36.2, 36.4, 36.5, 36.0, 36.2, 36.4, 36.8, 36.7, 36.1, 36.6, 36.5, 36.7]
plt.plot(x, y, marker='o', markerfacecolor='white')
# 定义标题
plt.title('15日体温变化')
plt.xlabel('日期')
plt.ylabel('体温')
# 水平参考区域
plt.axhspan(ymin=36.4, ymax=36.6, facecolor='red', alpha=0.2)
# 显示
plt.show()运行之后,效果如下图所示。

分析:
plt.axhspan(ymin=36.4, ymax=36.6, facecolor='red', alpha=0.2) 表示在 y 轴的 36.4 到 36.6 刻度值之间添加一个填充颜色为红色,透明度为 0.2 的水平矩形区域。
如果想要添加一个垂直方向的参考区域,此时我们可以使用 axvspan() 函数来实现。比如改为下面这一句代码,此时效果如下图所示。
plt.axvspan(xmin=5, xmax=10, facecolor='red', alpha=0.2)
