Хорошо, я использовал массив numpy, и он работал частично, если y1 и y2 такие же, как в примере, оба цвета будут отображаться только тогда, когда квадрат поднимается или опускается, но когда два квадрата находятся на одном уровне, есть не заполняется ...
from pylab import *
import numpy as np
y1 = np.array([100, 101, 102, 103, 102, 101, 102, 103])
y2 = np.array([100, 100, 101, 102, 103, 102, 101, 102])
#y1 = np.array([100,100, 101,101, 102,102, 103,103, 102,102, 101,101, 102,102, 103,103])
#y2 = np.array([100,100, 100,100, 101,101, 102,102, 103,103, 102,102, 101,101, 102,102])
x = np.array(list(range(len(y1))))
plot(x, y1, '-', drawstyle="steps")
plot(x, y2, '-', drawstyle="steps")
xlabel('No.')
ylabel('Level')
title('Step Lines Chart')
grid(True)
fill_between(x, y1, y2, where=(y1 > y2), color='C0', alpha=0.3, step="pre")
fill_between(x, y1, y2, where=(y1 < y2), color='C1', alpha=0.3, step="pre")
fill_between(x, y1, y2, where=(y1 == y2), color='yellow', alpha=0.3, step="pre")
show()
Я попытался удвоить все числа (см. прокомментированный синтаксис) и работал немного лучше, но все еще не идеально, сейчас будет хорошо рисовать, но когда два квадрата находятся на одном уровне, заполнит только половину квадрата
Все, что мне нужно, это когда y1 (синий линия) больше, чем y2 (оранжевая линия), квадрат должен быть заполнен синим цветом, а y1