Python: год или месяц по оси x с pyplot, pandas и matplotlib? - PullRequest
0 голосов
/ 17 сентября 2018

Существует множество различных решений, в основном устаревших, для решения вопроса добавления оси в объекте matplotlib, но ни одно из них еще не работает.Я хочу получить метки даты (месяцы или годы) на оси х.

Как добавить аннотации даты на оси в Python с помощью Pandas и Matplotlib?

MWE

import pandas as pd
from matplotlib.pyplot import savefig

a=pd.read_csv("test.csv")
a.pivot(index='date', columns='group').plot()
savefig("plot3.png")

test.csv

date,group,myval
2018-07-01,test1,999
2018-07-01,test2,523
2018-07-02,test1,3305
2018-07-02,test2,1290
2018-07-03,test1,9399
2018-07-03,test2,1827
2018-07-04,test1,6982
2018-07-04,test2,2391
2018-07-05,test1,4100
2018-07-05,test2,2081
2018-07-06,test1,0268
2018-07-06,test2,4834
2018-07-07,test1,9571
2018-07-07,test2,6369
2018-07-08,test1,3943
2018-07-08,test2,6483

enter image description here

где временные аннотации отсутствуют.

1 Ответ

0 голосов
/ 17 сентября 2018

Комментарии имеют следующие решения, проверенные решения для работы.

I.Преобразуйте столбец даты в дату и время dtype a['date'] = pd.to_datetime(a['date']) и plot.

a=pd.read_csv("test.csv")
a['date'] = pd.to_datetime(a['date']) 
a.pivot(index='date', columns='group').plot()

, где отрегулируйте форматирование при необходимости, например

a['date'] = pd.to_datetime(a['date'], format='%Y-%m-%d') 

enter image description here

II.Преобразовать дату столбца в дату-время по a = pd.read_csv("test.csv", parse_dates=[0])

a=pd.read_csv("test.csv", parse_dates=[0]) 
a.pivot(index='date', columns='group').plot()
...