Cela ressemble à ce que vous voulez axvspan
, plutôt que l'un des remplissages entre les fonctions. La différence est que axvspan
(et axhspan
) remplira toute l'étendue y (ou x) du tracé, quelle que soit la façon dont vous zoomez.
Par exemple, utilisons axvspan
pour mettre en évidence la région x entre 8 et 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()
Vous pouvez utiliser fill_betweenx
pour faire cela, mais les étendues (x et y) du rectangle seraient en coordonnées de données . Avec axvspan
, les étendues y du rectangle par défaut à 0 et 1 et sont exprimées en coordonnées d'axes (en d'autres termes, des pourcentages de la hauteur du tracé).
Pour illustrer cela, faisons en sorte que le rectangle s'étende de 10% à 90% de la hauteur (au lieu de prendre toute l'étendue). Essayez de zoomer ou de faire un panoramique, et notez que les étendues y indiquent fixe dans l'espace d'affichage, tandis que les étendues x se déplacent avec le zoom / panoramique:
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
pour des lignes verticales plus "ondulées", jetez un œil autransform
paramètre (et à cette réponse )