Затенение области между двумя точками на графике matplotlib - PullRequest
28 голосов
/ 10 сентября 2010

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

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

alt text

1 Ответ

31 голосов
/ 22 июля 2015

Вы можете просто использовать функцию 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()

В результате получается enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...