让Pandas datetime列在Matplotlib X轴上显示为Dates,而不是Numbers

时间:2015-11-15 16:10:18

标签: python datetime pandas matplotlib

使用pandas并想知道为什么日期列不会显示为实际日期(type = pandas.tslib.Timestamp)但显示为数字。

采取这个可复制的例子:

todays_date = datetime.datetime.now().date()

columns = ['month','A','B','C','D']

_dates = pd.DataFrame(pd.date_range(todays_date-datetime.timedelta(10), periods=150, freq='M'))
_randomdata = pd.DataFrame(np.random.randn(150, 4))

data = pd.concat([_dates, _randomdata], axis=1)

data.plot(figsize = (10,6))

enter image description here

如您所见,x轴显示为数字,而不是日期。

2个问题:

a)如何更改它以便实际日期显示在x轴上? b)如果我想要更多/更少的月份出现,如何更改x轴上的刻度和刻度标签的频率?

谢谢你们!

1 个答案:

答案 0 :(得分:0)

只需使用date_range作为DataFrame的索引:

todays_date = datetime.datetime.now().date()

columns = ['A','B','C','D']

data = pd.DataFrame(data=np.random.randn(150, 4),
                    index=pd.date_range(todays_date-datetime.timedelta(10), periods=150, freq='M'), 
                    columns=columns)
data.plot(figsize = (10,6))

enter image description here