Просто заполните небольшую дополнительную информацию на основе вашего комментария с C Йоханом. Вы можете использовать условие where
из fill_between
, чтобы указать определенные c блоки для заполнения. Есть хороший пример здесь , но вот пример, более похожий на ваши данные:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
x = range(200)
y = np.concatenate((np.random.randint(0,50,50), np.random.randint(50,100,50),
np.random.randint(0,50,50), np.random.randint(50,100,50)))
fig, ax = plt.subplots(figsize=(7,3.5))
ax.plot(x, y, color='red')
ax.axhline(50,0,200,color='blue')
ax.fill_between(x,y,50,where=(y<50), alpha=.3, color='orange')
ax.fill_between(x,y,50,where=(y>=50), alpha=.3, color='blue')
введите описание изображения здесь
Таким образом, если у вас есть одно условие с двумя вариантами (т.е. выше или ниже 50), вы можете использовать два вызовов fill_between
. y<50
и y>=50
- это логические массивы, обозначающие точки, в которых y
выше и ниже 50. Обратите внимание, что два вызова заполняют здесь 4 разные области графика.
Код из @ Johan C в комментарии следует просто изменить, чтобы повторить вышесказанное!