Ответ 1
Наиболее вероятная причина заключается в том, что вы использовали единицы данных для аргументов x при вызове axhspan. Из функции docs (мой акцент):
y координаты находятся в единицах данных, а х-координаты находятся в осях (относительный 0-1) ед.
Таким образом, любой прямоугольник, вытянутый слева от 0 или справа от 1, просто оттягивается.
Легкой альтернативой может быть добавление Rectangle
к вашей оси (например, через plt.gca
и add_patch
); Rectangle
использует единицы данных для обоих измерений. Ниже будет добавлен серый прямоугольник с шириной и высотой 1 с центром (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"))