Wygląda na to, że chcesz axvspan
, a nie jedna z wypełnień między funkcjami. Różnica polega na tym, że axvspan
(i axhspan
) wypełni cały y (lub x) zakres wykresu, niezależnie od tego, jak powiększysz.
Na przykład użyjmy, axvspan
aby podświetlić obszar x między 8 a 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 by fill_betweenx
to zrobić, ale zakresy (x i y) prostokąta byłyby we współrzędnych danych . W axvspan
przypadku zakresy y prostokąta domyślnie wynoszą 0 i 1 i są podane we współrzędnych osi (innymi słowy, w procentach wysokości wykresu).
Aby to zilustrować, ustawmy prostokąt rozciągający się od 10% do 90% wysokości (zamiast zajmować cały zakres). Spróbuj powiększyć lub przesuwać i zwróć uwagę, że zakresy y oznaczają stałe w obszarze wyświetlania, podczas gdy zakresy x przesuwają się wraz z powiększeniem / przesuwaniem:
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()
fill_between
dla bardziej "falujących", pionowych linii,transform