2016-03-18 38 views
0

我想绘制时间与速度数据。我能够从所需文件解析它们并为它们创建了字典结构。如何使用python绘制时间与价值图形

以下是我尝试

import matplotlib.pyplot as plt 
import sys 
import os 

data = {'velocity' : [2,4,6,8,12,50], 
     'time' : [12:08:00, 12:08:02, 12:08:04, 12:08:06, 12:08:08, 2:08:10]} 

plt.figure(1) 
plt.plot(data['time'] ,data['velocity']) 
plt.gcf().autofmt_xdate() 
plt.title('velocity vs time') 
plt.show() 

所以,当我尝试绘图他们我正在ValueError: invalid literal for float(): 12:08:00 error。到目前为止,我没有任何运气。这是我在这里错过的东西吗?

感谢

+0

显示的错误指示'图()'预计' float“类型,因此您可能希望在绘图之前将时间值转换为合理的”float“或”int“类型值。在Google上快速搜索也表明它们可以是'datetime.datetime'类型,请参阅http://stackoverflow.com/questions/19079143/how-to-plot-time-series-in-python以供参考。 – woozyking

+1

http://stackoverflow.com/q/1574088/2749397 – gboffi

+0

你是否也有日期信息,而不仅仅是时间? – MaxNoe

回答

1

time你的列表中的值必须是字符串或时间格式。 您可以data变量更改为

data = {'velocity' : [2,4,6,8,12,50], 
     'time' : ['12:08:00', '12:08:02', '12:08:04', '12:08:06', '12:08:08', '2:08:10']} 

并使用plt.xticks()像这样:

plt.plot(data['velocity']) 
plt.xticks(range(len(data['time'])), data['time']) 

这给剧情: Velocity vs. Time