Ось Y неупорядочена при построении нескольких данных с помощью фрейма данных panda

#pandas #matplotlib

#pandas #matplotlib

Вопрос:

Я пытаюсь построить несколько данных из одного фрейма данных с индексом datetime. Моя база данных выглядит следующим образом:

введите описание изображения здесь

Столбцы «Цена покупки» и «Цена продажи» имеют ту же цену, что и столбец «Цена». Цель состоит в том, чтобы установить маркеры на основной строке, которая основана на столбце «Цена». Вот фрагмент моего графика без добавления столбцов «Цена покупки» и «Цена продажи».

Только один y

Вот мой код:

 df=data()

xdate=df.index
yprice=df["Price"]
ybuy=df["Buy price"]
ysell=df["Sell price"]

fig,ax= plt.subplots()
ax.plot_date(xdate,yprice,"-")
ax.plot_date(xdate,ybuy,"gD")
ax.plot_date(xdate,ysell,"rD")

ax.xaxis.set_major_locator(dates.MinuteLocator(byminute=[0,10,20,30,40,50]))
ax.xaxis.set_major_formatter(dates.DateFormatter('%H:%M'))

fig.autofmt_xdate()
plt.tight_layout()
plt.grid()
plt.show()
  

К сожалению, столбцы «Цена покупки» и «Цена продажи» неупорядочиваются на оси Y, а данные «Цены» группируются вместе. Есть ли способ выпрямить ось y в порядке возрастания?

С несколькими участками

Большое вам спасибо!

Комментарии:

1. Вы строите строки. Вместо этого вы, вероятно, захотите отобразить данные y в виде чисел (с плавающей точкой), а данные x в виде дат ( datetime или numpy.datetime64 или pandas.Timestamp ).

2. Спасибо за подсказку. Мне нужно было заменить значения «» на: df[«Цена покупки»].replace(«, np.nan, inplace= True) и df[«Цена продажи»].replace(«, np.nan, inplace=True)