2017-06-21 4 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 

私が欲しいもの、X軸とY軸上の他の値に日付&時間(ない現在の時間)を示したグラフです。私はうまく動作するExcel部分がありますが、プロットグラフは私が問題を抱えているところです。

+0

どのようにデータセットをPythonで取得していますか?あなたはパンダを使っていますか? – anon

+0

@anon openpyxlを使用しても問題はありません。次のように2つの短いリストを作成すると同じことが起こります。 v = [2,3.9,2,3.2,1.7] t = ["06/11/17 04:13:02 PM"、blah bla] – squid22

+0

その文字列をdatetimeオブジェクトに変換する必要があります – 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 

は、私はその完璧ではないが知っているが、私のために動作します。私はそれがはるかに効率的に行うことができると確信しています。

関連する問題