The most likely reason is that you used data units for the x arguments when calling axhspan. From the function's docs (my emphasis):
y coords are in data units and x coords are in axes (relative 0-1)
units.
So any rectangle stretching left of 0 or right of 1 is simply drawn off-plot.
An easy alternative might be to add a Rectangle
to your axis (e.g., via plt.gca
and add_patch
); Rectangle
uses data units for both dimensions. The following would add a grey rectangle with width & height of 1 centered on (2,3):
from matplotlib.patches import Rectangle
someX, someY = 2, 3
currentAxis = plt.gca()
currentAxis.add_patch(Rectangle((someX - .5, someY - .5), 1, 1, facecolor="grey"))
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…