我可以在tick标签matplotlib中只有datetime对象的日期吗?

时间:2016-11-17 03:33:51

标签: python datetime matplotlib

如果我有一个像这样的pandas数据框:

                     col1    col2  
time                                                                        
2014-10-01 11:49:32  1      193.75   
2014-10-02 10:32:51  2      62.26   
2014-10-11 15:19:03  3      96.68   
...and so forth

并希望为每个日期绘制这些值。

在图中,要获取日期时间标签,我会使用

xticks2 = pd.date_range(start=df.iloc[0,0],end=df.iloc[-1,0], freq='7D', normalize=True)    
ax2 = axes2.xaxis.set_minor_locator(mpl.dates.WeekdayLocator(byweekday=range(7), interval=1)) 
ax2 = plt.xticks(xticks2,xticks2, rotation=0)

但这给了可怕的长标签,即2014-10-01 11:49:32。有没有办法像2014-10-01那样获得标签(没有时间的日期)?

2 个答案:

答案 0 :(得分:1)

尝试为日期创建一个新列,并根据该列进行绘图。

df['Dates'] = df.time.apply(lambda x: x.date().isoformat())

答案 1 :(得分:0)

尝试添加到现有代码

axes2.xaxis.set_minor_formatter(mpl.dates.DateFormatter('%Y-%m-%d'))