Matplotlib axvspan - 实心填充?

Phi*_*ker 3 python graphics matplotlib python-3.x

我正在使用这行代码使用 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')
Run Code Online (Sandbox Code Playgroud)

不过,我希望它能够遍历图表以隐藏图表上的线。目前它只是这样做。

在此输入图像描述

如何使 axvspan 的填充变为实心且不透明?

arm*_*ita 6

这与透明度无关(您可以使用alpha参数更改透明度)。这是关于zorder(到用户的一种距离,较低的 zorder 会更远)。您需要将 the 的 zorder 放在gridthe zorder 的下方axvspan(我认为,它应该位于 的 zorder 下方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()
Run Code Online (Sandbox Code Playgroud)

,结果是:

matplotlib 图中元素的 Zorder