Затенение области между двумя точками на графике matplotlib
Как добавить затененную область между двумя точками в matplotlib plot?
В приведенном ниже примере matplotlib я вручную добавил затененную желтую область с помощью Skitch. Я хотел бы знать, как сделать это без-скит.
Ответ 1
Вы можете просто использовать функцию axvspan. Преимущество этого заключается в том, что вертикальная область (или горизонтальная, в случае axhspan) останется затененной независимо от того, как вы панорамируете/масштабируете график. Вот полный пример здесь.
См. простой пример ниже:
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()