Dan*_*Dan 9 python matplotlib pandas
我无法弄清楚如何更改这些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')
Run Code Online (Sandbox Code Playgroud)

CT *_*Zhu 10
只需访问刻度标签并进行更改:
xtl=[item.get_text()[:10] for item in ax.get_xticklabels()]
_=ax.set_xticklabels(xtl)
Run Code Online (Sandbox Code Playgroud)

在对象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)
Run Code Online (Sandbox Code Playgroud)
与截断ticklabel字符串相比,这允许更一般的格式化选项.
您可以完全使用您喜欢的 strftime 传递新标签:
ax.set_xticklabels([pandas_datetime.strftime("%Y-%m-%d") for pandas_datetime in df.index])
Run Code Online (Sandbox Code Playgroud)
这不是最漂亮的答案,但它始终如一地完成工作。
| 归档时间: |
|
| 查看次数: |
8105 次 |
| 最近记录: |