У меня есть список цен на акции и список этикеток равной длины.3 возможных метки: -1
, 0
и 1
, где -1
и 1
обозначают, где цена увеличивается или уменьшается.
Я создал эту функцию, которая позволяет размещать зеленые и красные точки на соответствующей цене, если цена увеличивается или уменьшается, но она не работает должным образом.
def plot(price, labels):
green1 = []
redm1 = []
for i in range(len(labels)):
y = labels[i]
if y == -1:
green1.append(price[1])
redm1.append(None)
elif y == 1:
redm1.append(price[1])
green1.append(None)
else:
green1.append(None)
redm1.append(None)
plt.subplot(1, 1, 1)
plt.plot(range(price.shape[0]), price, color="orange")
plt.plot(range(price.shape[0]), green1, "o", color="green")
plt.plot(range(price.shape[0]), redm1, "o", color="red")
plt.title("Plot")
plt.show()
plt.clf()

Обратите внимание, что точки красной линии - это не только красные точки, но и зеленые точки.
Как можно исправить функцию plot
, чтобы точкивместо кривой можно поместить ее в виде прямой линии?