2017-06-21 113 views
-1

我想繪製使用matplotlib的python數據,但由於某些原因,它不允許我繪製X軸上的日期和時間數據。它抱怨說它不能將字符串轉換爲浮點數。 Excel數據如下所示:Python matplotlib繪製excel中的自定義數據

06/11/17 04:13:02 PM 2.1 
06/11/17 04:14:32 PM 3.9 
06/11/17 04:14:54 PM 2 
06/11/17 04:15:08 PM 3.2 
06/11/17 04:15:25 PM 1.7 

我要的是顯示對Y軸的X軸和其他值的日期&時間(不是當前的時間)的圖表。我有excel部分工作正常,但繪圖圖是我遇到的問題。

+0

你是如何得到python的數據集?你在用熊貓嗎? – anon

+0

@anon使用openpyxl但那不是問題。如果我創建兩個短名單如下: v = [2,3.9,2,3.2,1.7] t = [「06/11/17 04:13:02 PM」,blah bla] – squid22

+0

您將需要將該字符串轉換爲日期時間對象 – anon

回答

0

我明白了。事實證明,openpyxl已經將日期和時間從excel轉換爲datetime()值。下面是我的代碼,它的工作完美無瑕。

import openpyxl 
import sys 
import matplotlib.pyplot as plt 

v = [] 
d = [] 

file = sys.argv[1] 

wb = openpyxl.load_workbook(file) 
sheet = wb.get_sheet_by_name('Sheet1') 

for row in range(2,sheet.max_row): 
    for stuff in "B": 
     valuesData = "{}{}".format("B",row) 
     v.append(sheet[valuesData].value) 

for row in range(2,sheet.max_row): 
    for stuff in "A": 
     timeData = "{}{}".format("A",row) 
     d.append(sheet[timeData].value) 

plt.xlabel("Time") 
plt.ylabel("Values") 
plt.plot(d,v) 
plt.show() 

假設你有一個Excel工作表的數據如下:

A       B 
1 06/11/17 04:13:02 PM 2.1 
2 06/11/17 04:14:32 PM 3.9 
3 06/11/17 04:14:54 PM 2 
4 06/11/17 04:15:08 PM 3.2 
5 06/11/17 04:15:25 PM 1.7 

我知道它並不完美,但我的作品。我相信它可以更有效地完成。