使用matplotlib和datetime格式化Python中的日期:x轴错误 - 浮点数

时间:2016-02-11 11:28:31

标签: python datetime matplotlib

我尝试使用一组数据绘制图表。 y轴没问题,它是简单的浮点数。 问题是x轴:它的数据按日期时间格式化为'%Y-%m-%d %H:%M:%S'。当试图绘制时,它当然发生了无浮动的错误......我尝试了很多方法,它仍然无法工作......

所以到目前为止输入的是两个数组:x是['2016-02-05 17:14:55', '2016-02-05 17:14:51', '2016-02-05 17:14:49', ...]。 y是['35.764299', '20.3008', '36.94704', ...]

1 个答案:

答案 0 :(得分:6)

您可以使用DateFormatter,如下所示:

import matplotlib
import matplotlib.pyplot as plt
from datetime import datetime

x_orig = ['2016-02-05 17:14:55', '2016-02-05 17:14:51', '2016-02-05 17:14:49']
x = [datetime.strptime(d, '%Y-%m-%d %H:%M:%S') for d in x_orig]
y = ['35.764299', '20.3008', '36.94704']

xs = matplotlib.dates.date2num(x)
hfmt = matplotlib.dates.DateFormatter('%H:%M:%S')

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
ax.xaxis.set_major_formatter(hfmt)
plt.setp(ax.get_xticklabels(), rotation=15)
ax.plot(xs, y)
plt.show()

这将显示以下内容: matplotlib screenshot