2010-09-10 14 views

Odpowiedz

26

można po prostu użyć funkcji axvspan. Zaletą tego jest to, że obszar pionowy (lub poziomy, w przypadku axhspan) pozostanie zacieniony, niezależnie od sposobu przesuwania/powiększania wykresu. Oto pełny przykład: here.

Zobacz prosty przykład poniżej:

import numpy as np 
import matplotlib.pyplot as plt 

x = np.linspace(0, 20, 500) 
y = np.cos(3*x) - 2*np.cos(5*x) + 0.5*np.cos(6*x) 

a = 5 
b = 15 

plt.axvspan(a, b, color='y', alpha=0.5, lw=0) 
plt.plot(x, y) 
plt.savefig('shade.png', dpi=300) 
plt.show() 

To daje w wyniku enter image description here

+2

'axvspan' jest o wiele lepszym rozwiązaniem niż' fill_between' w tej sprawie. –

+1

Byłem w trakcie edycji twojej odpowiedzi. Mam nadzieję, że wszystko w porządku! –

Powiązane problemy