Matplotlib axvspan - 实心填充?

3
我正在使用这行代码在matplotlib中创建一个垂直跨度。
matplotlib.pyplot.axvspan(datetime.datetime.strptime("09-10-2015", '%d-%m-%Y'), datetime.datetime.strptime(now.strftime("%d-%m-%Y"), '%d-%m-%Y'), fill=True, linewidth=0, color='r')

然而,我希望它能覆盖在图表上,以隐藏图表上的线条。目前只是这样。

enter image description here

我该如何使axvspan的填充实心且不透明?

1个回答

6

这不是关于透明度(可以通过alpha参数更改)。它与zorder有关(一种与用户的距离,较低的zorder将更远)。您需要将grid的zorder放在axvspan的zorder下面(而axvspan应该在plot的下面,我认为)。请查看以下示例:

import numpy as np
import matplotlib.pyplot as plt

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

plt.plot(t, s,zorder=4)

p = plt.axvspan(1.25, 1.55, facecolor='g', alpha=1,zorder=3)

plt.axis([-1, 2, -1, 2])
plt.grid(zorder=2)

plt.show()

这将导致:

Matplotlib图中元素的Zorder


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接