从matplotlib.num2date日期中删除时间戳,并在轴xlabel中使用日期戳

时间:2014-12-04 23:21:00

标签: python date datetime matplotlib

我有一个日期值数组(T_date),从CSV导入并使用

转换为数字
T_date, T_price = np.loadtxt('TESC.csv', unpack = True, delimiter = ',',
                 skiprows=1, usecols=(0,4),
                 converters = {0: mdates.strpdate2num('%Y-%m-%d')}) 

然后我创建一个从0开始的新数组,其中0是使用

的最早日期
T_date0=T_date-np.amin(T_date)

我希望将pyplot图的x轴标记为

plt.xlabel("Date, 0 = ", firstdate)

其中firstdate =

firstdate = mdates.num2date(np.amin(T_date)).

这会以Y-m-d时间的形式创建一个日期时间值,但由于我的数据没有时间值,我希望将其删除。

当我运行时,我收到错误

"AttributeError: 'datetime.datetime' object has no attribute 'iteritems'"

任何帮助都非常感激。

1 个答案:

答案 0 :(得分:0)

试试吧:

plt.xlabel("Date, 0 = {}".format(firstdate.strftime("%Y-%m-%d")))

为了完整性:您看到的错误是由于python尝试将您传递给xlabel的第二个参数解压缩,根据其定义:

Definition:  plt.xlabel(s, *args, **kwargs)

至于仅在标题中提出的问题(“从matplotlib.num2date日期中删除时间戳”),您应该查看xaxis的格式化选项。这个example from the matplotlib website总结得很好。你需要:

ax.fmt_xdata = mdates.DateFormatter('%Y-%m-%d')