2010-09-10 2 views
24

Как вы можете добавить затененную область между двумя точками на участке matplotlib?Затенение области между двумя точками на графике matplotlib

В примере matplotlib ниже, я вручную добавил затененную желтую область, используя Skitch. Я хотел бы знать, как это сделать без-скит.

alt text

ответ

26

Вы можете просто использовать функцию axvspan. Преимущество этого заключается в том, что вертикальная область (или горизонтальная, в случае axhspan) останется затененной независимо от того, как вы поворачиваете/увеличиваете масштаб. Есть полный пример here.

См простой пример ниже:

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() 

Это дает в результате enter image description here

+2

'axvspan' является гораздо лучшим вариантом, чем' fill_between' в этом случае. –

+1

Я был в середине редактирования вашего ответа. Надеюсь, все в порядке! –

Смежные вопросы