Pandas plot дает правильный сюжет, тогда как matplotlib дает ошибку

У меня есть набор данных, где я пытаюсь визуализировать данные date-time, Я преобразовал строку даты и времени в date-time отформатировать

 dataset = pd.read_csv('price.csv')
 dataset2=dataset[['Date','MCP']]
 dataset2['Date']=pd.to_datetime(dataset2['Date'])

Сейчас заговор в matplotlib

dataset2.plot()

правильный сюжет

но для того же, matplotlib

plt.plot(dataset2.index,dataset2['MCP'])

неправильный сюжет

Может кто-нибудь объяснить мне, что происходит? Я конвертирую string в date-time используя неправильный метод или что-то еще?

2 ответа

Я нашел решение проблемы, но если бы кто-то мог объяснить причину

dataset2['Date']=pd.to_datetime(dataset2['Date']).dt.strftime('%d/%m/%Y %H:%M:%S')
dataset2['Date']=pd.to_datetime(dataset2['Date'])

По умолчанию Pandas преобразует его в другой формат, поэтому мне нужно преобразовать его обратно в строку с правильным форматом, приемлемым для matplotlib, а затем снова преобразовать строку в дату-время. Есть ли другой способ сделать это?

plt.plot(dataset2['Date'],dataset2['MCP'])

сюжет

Я понял, что интерпретирует matplotlib, и вот он: после простого преобразования в дату-время, используя

dataset2['Date']=pd.to_datetime(dataset2['Date'])

снимок данных

Взяв первые 96 значений (после которых дата меняется), она работает как надо. Но после этого (получение значений на следующий день и т. Д.) Он считает часть дня меткой времени "день" как месяц и растягивает дни до следующего месяца (до тех пор, пока не произойдет это конкретное значение).

ошибочный сюжет

PS - пришлось написать вторым ответом, потому что не позволено вставлять более 2 изображений до репутации 10

Другие вопросы по тегам