一尘不染

在matplotlib中格式化日期时间xlabel(pandas df.plot()方法)

python

我不知道如何更改这些x标签的格式。理想情况下,我想请strftime('%Y-%m-%d')他们。我已经尝试过类似的操作,set_major_formatter但是没有成功。

import pandas as pd
import numpy as np
date_range = pd.date_range('2014-01-01', '2015-01-01', freq='MS')
df = pd.DataFrame({'foo': np.random.randint(0, 10, len(date_range))}, index=date_range)
ax = df.plot(kind='bar')

丑陋的x标签格式


阅读 810

收藏
2021-01-20

共1个答案

一尘不染

在对象date_rangeDF的Timestamp对象。调用Timestamp.strftime每个对象:

date_range = pd.date_range('2014-01-01', '2015-01-01', freq='MS')
date_range = date_range.map(lambda t: t.strftime('%Y-%m-%d'))
print date_range
array([2014-01-01, 2014-02-01, 2014-03-01, 2014-04-01, 2014-05-01,
       2014-06-01, 2014-07-01, 2014-08-01, 2014-09-01, 2014-10-01,
       2014-11-01, 2014-12-01, 2015-01-01], dtype=object)

与截断ticklabel字符串相比,这提供了更通用的格式设置选项。

2021-01-20