質問編集履歴
2
やりたいことの修正
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,76 +1,5 @@
|
|
1
1
|
### 実現したいこと
|
2
|
-
pythonでexcelの時系列データを読み込んで、そのデータをグラフにリアルタイムで描画している様子を出力したいのですが、プログラミング歴が浅く、苦戦しています。どなたかご教授いただければ幸いです。
|
3
|
-
実現したいグラフは以下のようなグラフで、横軸が日付、縦軸がexcelのデータの移動平均をとった値です。
|
4
|
-
このグラフを逐次的に描画している様子を出力したいです。
|
5
2
|
|
6
|
-
![イメージ説明]
|
3
|
+
![イメージ説明]
|
7
4
|
### 前提
|
8
|
-
pythonでexcelの時系列データを読み込んで、グラフを作成しています。
|
9
|
-
全てのデータを一度でプロットするのはできるのですが、リアルタイムでグラフを描画している様子を出力することができません。
|
10
5
|
|
11
|
-
excelの時系列データは以下のようなデータです。
|
12
|
-

|
13
|
-
|
14
|
-
### 発生している問題・エラーメッセージ
|
15
|
-
|
16
|
-
```
|
17
|
-
エラーメッセージ
|
18
|
-
A.append(data["DateTime"].values)のところで 'int' object is not subscriptable と出ます
|
19
|
-
|
20
|
-
### 該当のソースコード
|
21
|
-
|
22
|
-
python
|
23
|
-
|
24
|
-
ソースコード
|
25
|
-
import pandas as pd
|
26
|
-
import matplotlib.pyplot as plt
|
27
|
-
from datetime import datetime as dt
|
28
|
-
from matplotlib import animation
|
29
|
-
|
30
|
-
dataname = 'データ名' #データ名の入力
|
31
|
-
dt_head=dt(2019,5,6,10,38,37) #日付データの頭の時間
|
32
|
-
dt_end=dt(2019,5,13,0,0,0) #日付データの末の時間
|
33
|
-
|
34
|
-
|
35
|
-
#データの読み込み.日時をdatetime形式に変換
|
36
|
-
data=pd.read_excel(dataname+'.xlsx',header=0,
|
37
|
-
parse_dates={'DateTime': ['Date', 'Time']})
|
38
|
-
|
39
|
-
fig = plt.figure()
|
40
|
-
|
41
|
-
xlim = [0,1000]
|
42
|
-
A, B = [], []
|
43
|
-
|
44
|
-
x=data["tn"].values+data["fn"].values #tn,fn,tp,fpはexcelのデータです
|
45
|
-
y=data["tp"].values+data["fp"].values
|
46
|
-
z=x-y
|
47
|
-
z_rolling = pd.DataFrame(z).rolling(window=500).mean() #(tn+fn)-(tp+fp)の移動平均をとったもの
|
48
|
-
|
49
|
-
def plot(data):
|
50
|
-
plt.cla() # 前のグラフを削除
|
51
|
-
|
52
|
-
B.append(z_rolling)
|
53
|
-
A.append(data["DateTime"].values)
|
54
|
-
|
55
|
-
if len(A) > 1000: # 描画範囲を更新
|
56
|
-
xlim[0]+=1
|
57
|
-
xlim[1]+=1
|
58
|
-
|
59
|
-
plt.plot(A, B) # 次のグラフを作成
|
60
|
-
plt.title("sample animation (real time)")
|
61
|
-
plt.ylim([0,1000])
|
62
|
-
plt.xlim(xlim[0],xlim[1])
|
63
|
-
|
64
|
-
|
65
|
-
# 1秒ごとにplot関数を呼び出してアニメーションを作成
|
66
|
-
ani = animation.FuncAnimation(fig, plot, interval=1)
|
67
|
-
plt.show()
|
68
|
-
|
69
|
-
### 試したこと
|
70
|
-
様々なサイトを調べまくりましたが、解決できなかったので投稿させていただきました。
|
71
|
-
|
72
|
-
### 補足情報(FW/ツールのバージョンなど)
|
73
|
-
|
74
|
-
使用環境・・python
|
75
|
-
プログラムを動かすのにspyderを用いています。
|
76
|
-
|
1
実現したいことの追加説明
test
CHANGED
File without changes
|
test
CHANGED
@@ -1,7 +1,9 @@
|
|
1
1
|
### 実現したいこと
|
2
2
|
pythonでexcelの時系列データを読み込んで、そのデータをグラフにリアルタイムで描画している様子を出力したいのですが、プログラミング歴が浅く、苦戦しています。どなたかご教授いただければ幸いです。
|
3
|
+
実現したいグラフは以下のようなグラフで、横軸が日付、縦軸がexcelのデータの移動平均をとった値です。
|
4
|
+
このグラフを逐次的に描画している様子を出力したいです。
|
3
5
|
|
4
|
-
|
6
|
+

|
5
7
|
### 前提
|
6
8
|
pythonでexcelの時系列データを読み込んで、グラフを作成しています。
|
7
9
|
全てのデータを一度でプロットするのはできるのですが、リアルタイムでグラフを描画している様子を出力することができません。
|
@@ -26,8 +28,8 @@
|
|
26
28
|
from matplotlib import animation
|
27
29
|
|
28
30
|
dataname = 'データ名' #データ名の入力
|
29
|
-
dt_head=dt(2019,5,6,10,38,37) #データの頭の時間
|
31
|
+
dt_head=dt(2019,5,6,10,38,37) #日付データの頭の時間
|
30
|
-
dt_end=dt(2019,5,13,0,0,0) #データの末の時間
|
32
|
+
dt_end=dt(2019,5,13,0,0,0) #日付データの末の時間
|
31
33
|
|
32
34
|
|
33
35
|
#データの読み込み.日時をdatetime形式に変換
|