Ответ 1
Похоже, вы хотите axvspan
, а не одну из функций между функциями. Различия заключаются в том, что axvspan
(и axhspan
) заполнит всю длину y (или x) графика независимо от того, как вы увеличиваете масштаб.
Например, используйте axvspan
, чтобы выделить область x между 8 и 14:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, alpha=0.5, color='red')
plt.show()
Вы можете использовать fill_betweenx
для этого, но экстенты (как x, так и y) прямоугольника будут в координатах данных. При axvspan
y-экстенты прямоугольника по умолчанию равны 0 и 1 и находятся в координатах осей (другими словами, в процентах от высоты графика).
Чтобы проиллюстрировать это, пусть прямоугольник простирается от 10% до 90% высоты (вместо того, чтобы полностью вместить). Попробуйте масштабирование или панорамирование и обратите внимание на то, что y-экстенты фиксируются в пространстве дисплея, а x-экстенты перемещаются с помощью масштабирования/панорамирования:
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot(range(20))
ax.axvspan(8, 14, ymin=0.1, ymax=0.9, alpha=0.5, color='red')
plt.show()