2013-07-05 73 views
1

好吧,我搜索了很多關於它但我仍然沒有得到它很好...... 假設我有:繪製的時間列表

listHours = ['00:00:000-10:00:000', '10:00:000-20:00:000', '20:00:000-30:00:000', '30:00:000-40:00:000', '40:00:000-50:00:000', '50:00:000-00:00:000'] 
listNumbers = ['0.01', '0.02', '0.03', '0.05', '0.05', '0.03'] 

,我想:

plt.plot(listHours, listNumbers) 
plt.show() 

當我使用ticks時,Matplotlib不接受這個listHours(「ValueError:float literal():00:00:000-10:00:000」)我得到這個錯誤:「TypeError:float()argument must be一個字符串或一個數字「我不知道是否因爲我使用這個蜱的東西是錯誤的或任何想法?我在這裏有點沮喪。

已經表示感謝。

+2

爲什麼在格式'你的時間出了「小時:分:秒 - 小時:分:秒」'?他們不應該只是'hr:min:sec'嗎?對於單個小時('hr:min:sec'),您可以執行'matplotlib.dates.datestr2num()'將其轉換爲matplotlib可以解釋的內容。 – wflynny

+0

所以......我沒有選擇這個。數據以這種方式來到我這裏,上帝知道爲什麼。 – user

回答

2

您可以使用xticks命令來執行此操作。請參見下面的代碼片段 -

>>> listHours = ['00:00:000-10:00:000', '10:00:000-20:00:000', '20:00:000-30:00:000','30:00:000-40:00:000', '40:00:000-50:00:000', '50:00:000-00:00:000'] 
>>> listNumbers = ['0.01', '0.02', '0.03', '0.05', '0.05', '0.03'] 
>>> listNumbers = [float(elem) for elem in listNumbers] # Convert to a list of floats. 
>>> plt.plot(listNumbers) 
>>> plt.xticks(range(len(listHours)), listHours, size='small') 
>>> plt.show() 

它給你喜歡這個

Plot figure

+0

您是否將'listNumbers'轉換爲數字列表以獲取該圖? – unutbu

+0

我錯過了,但它似乎很好地畫線。我會將其轉換爲數字列表。 –

+0

yaaaay!我實際上試圖做這樣的事情,但我相信我的yAxis是錯誤的。非常感謝! – user