Wygląda na to, że chcesz axvspan
, a nie jedno z wypełnień między funkcjami. Różnice polegają na tym, że axvspan
(i axhspan
) wypełnią cały zakres y (lub x) wykresu, niezależnie od tego, jak powiększasz.
Na przykład, użyjmy axvspan
aby podświetlić X-obszar między 8 i 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()
Można użyć fill_betweenx
to zrobić, ale zakresy (X i Y) prostokąta będzie w współrzędnych danych. Z wartością axvspan
, wartości y prostokąta są domyślnie wartościami 0 i 1 i są w współrzędnymi osi (innymi słowy, procentami wysokości wykresu).
Aby to zilustrować, ustawmy prostokąt na 10% do 90% wysokości (zamiast w pełnym zakresie). Spróbuj powiększanie lub panoramowanie, i zauważ, że Y zakresy powiedzieć stałe w przestrzeni ekranu, podczas gdy X-zakresy poruszać się z zoom/pan:
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()
ludzie, którzy są zainteresowani w roztworze do wykorzystania 'fill_between' dla bardziej" wiggly ", pionowe linie, spójrz na parametr' transform' (i [ta odpowiedź] (http://stackoverflow.com/a/4891658/4375377)) –