<code>strftime('%Y-%m-%d')</code>

问题描述 投票:0回答:3

	
轻描淡写地访问tick标签并更改它们:

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')

ugly x label formats

python matplotlib pandas
3个回答
12
投票
df中的对象是

xtl=[item.get_text()[:10] for item in ax.get_xticklabels()] _=ax.set_xticklabels(xtl)

对象。在每个对象上致电
date_range

enter image description hereTimestamp


9
投票

您只能通过您喜欢的strftime完全通过新标签:
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)


8
投票
完成工作,但这不是理想的。 RCCG的答案是完美的BC,它不会更改索引的日期类型类型。

ax.set_xticklabels([pandas_datetime.strftime("%Y-%m-%d") for pandas_datetime in df.index])

	

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.