【2.8.5】matplotlib辅助线(vlines/hlines/axvspan/axhspan)

一、vlines

绘制一条垂直/水平的辅助线,以 vlines 为例,

plt.vlines(x, ymin, ymax, colors='k', label='') 和 plt.hlines(y, xmin, xmax, colors='k', label='')

说明重要参数:

x:横坐标
ymin,ymax:辅助线纵坐标的最小值、最大值
label:标签内容
plt.axvline(x=0, ymin=0, ymax=1, hold=None, **kwargs) 和 plt.axhline(y=0, xmin=0, xmax=1, hold=None, **kwargs)

二、vlines

绘制一条横跨当前图表的垂直/水平辅助线,以 axvline 为例,说明重要参数:

x:横坐标
ymin, ymax:辅助线两头纵坐标相对于整个图表的位置,范围在 0 到 1 之间。

与 vlines 的区别在于:

  1. 可以不规定 ymin 和 ymax
  2. ymin 和 ymax 的定义也不同,axvline 中是做了归一化的
  3. 不能增加 label

三、axvspan、axhspan

绘制一个横跨当前图表的垂直/水平区域

plt.axvspan(xmin, xmax, ymin=0, ymax=1, hold=None, **kwargs) 和 plt.axhspan(ymin, ymax, xmin=0, xmax=1, hold=None, **kwargs)

,以 axvspan 为例,说明重要参数:

xmin, xmax:区域的左、右边界
ymin,ymax:区域上下纵坐标对于整个图表的位置,范围在 0 到 1 之间

例子:

t = np.arange(-1, 2, .01)
s = np.sin(2 * np.pi * t)

#曲线
plt.plot(t, s)

# 以y轴0点画横线
plt.axhline(linewidth=8, color='#d62728')

# 画横线
plt.axhline(y=1)

# 画纵线
plt.axvline(x=1)

# Draw a thick blue vline at x=0 that spans the upper quadrant of the yrange
# plt.axvline(x=0, ymin=0.75, linewidth=8, color='#1f77b4')

# 画线段
plt.axhline(y=.5, xmin=0.25, xmax=0.75)

# 平行填充
plt.axhspan(0.25, 0.75, facecolor='0.5', alpha=0.5)

# 垂直填充
plt.axvspan(1.25, 1.55, facecolor='#2ca02c', alpha=0.5)

# 坐标轴
plt.axis([-1, 2, -1, 2])

plt.show()

参考资料:

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn