前提・実現したいこと
現在、デバイスから受け取ったデータをグラフに描画しそのデータをファイルに保存しています。
しかし、配列数が横軸になるためcsvファイルへの保存も100個の値しかできていない状態(100を超えると1列目が消えて繰り上がり100列目に101個目の値が保存されます)です。
配列数を増やし、グラフでは横軸に限りを設けて対応しようとしましたがうまく行きませんでした。
現在は、100を超えても101・102…とデータが追加されるように努めています。
何か解決策あれば回答お願いします。
該当のソースコード
python
1import thinkgear 2import re 3import matplotlib.pyplot as plt 4import numpy as np 5import csv 6 7PORT = '/dev/tty.MindWaveMobile-SerialPo' 8 9attention_array = np.zeros(100) 10meditation_array = np.zeros(100) 11 12 13#fig = plt.figure() 14 15def Plot(attention_array, meditation_array): 16 plt.subplot(5,2,1) 17 line, = plt.plot(attention_array, color = 'red') 18 plt.ylabel("Attention") 19 20 plt.subplot(5,2,2) 21 line2, = plt.plot(meditation_array, color = 'blue') 22 plt.ylabel("Meditation") 23 24 25 plt.pause(0.01) 26 line.remove() 27 line2.remove() 28 29for packets in thinkgear.ThinkGearProtocol(PORT).get_packets(): 30 for p in packets: 31 32 if isinstance(p, thinkgear.ThinkGearRawWaveData): 33 continue 34 35 t = str(p) 36 if t != '': 37 differencer = t[0:1] 38 if int(differencer) == 2: 39 attention = t[1:] 40 attention_array = np.append(attention_array, attention) 41 attention_array = attention_array[1:101] 42 elif int(differencer) == 3: 43 meditation = t[1:] 44 meditation_array = np.append(meditation_array, meditation) 45 meditation_array = meditation_array[1:101] 46 47 48 data = [list(attention_array), list(meditation_array)] 49 list(attention_array).append(attention) 50 list(meditation_array).append(meditation) 51 52 with open('test.csv', 'w') as file: 53 writer = csv.writer(file, lineterminator = '\n') 54 writer.writerows(data) 55 56 57 Plot(attention_array, meditation_array) 58
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。