Предположим, у меня есть сигнал, скажем, синусоида:
x = np.arange(100)
y = np.sin(x/10)
Когда я рисую это, я хочу выделить красным цветом области, где значение y
выше определенного порога,например 0,7.Я думал о том, чтобы сделать что-то вроде этого
region = [i for i, e in enumerate(y) if e >= 0.7]
fig, ax = plt.subplots()
ax.plot(x, y)
k = region [0]
for i in region:
if i-k == 1:
ax.axvspan(k, i+1, facecolor='red', alpha=0.2)
k = i
plt.show()
+1
добавлено, потому что я хочу "включить" последнюю точку в выделенной области.
Однако это приводит к перекрытию axvspan
s, что означает, что первый и последний будут "легче" (потому что я использую alpha = 0.2
), как на рисунке: ![Plot](https://i.stack.imgur.com/QWlWR.png)
Есть ли еще(возможно, более простой) способ добиться этого?