2013-04-15 110 views
0

我有一組python列表,我想用matplotlib繪製一個圖形,使得時間列表繪製在x軸上,數據列表繪製在y軸上。我寫在X軸上繪製數據與時間的關係

代碼類似於:

time =['16:40:48','16:45:48','16:50:48','16:55:48','17:00:48','17:05:48','17:10:48'] 

data1 = ['702','683','696','666','688','694','699'] 


fig = plt.figure(figsize=(20.0, 16.0)) 

ax = fig.add_subplot(1,1,1) 

dates = matplotlib.dates.date2num(time) 


ax.plot_time(dates,data1) 


ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=5)) 
ax.xaxis.set_major_formatter(mdates.DateFormatter("%H:%M:%S")) 
plt.grid(True) 

plt.show() 

但是這給了我一個錯誤說:

AttributeError的: '海峽' 對象有沒有屬性 'toordinal'

我已經研究過關於類似問題的帖子,但無法爲我的問題找到理想的解決方案。

回答

0

從文檔:

matplotlib.dates.date2num(d): 
d is either a datetime instance or a sequence of datetimes. 

你必須轉換你的時間爲datetime第一對象。無論如何,你不需要將它們轉換爲「nums」,只需繪製它們就可以了。

爲了創建日期時間,只需使用列表理解:

datetimes = [datetime.datetime.strptime(t, "%H:%M:%S") for t in time] 

然後

ax.plot(datetimes, data1) 
相關問題