実現したいこと
グラフの応答なしをなくしたい。
前提
VSCである程度の時間起きにデータを取得してグラフを作っています。
グラフはちゃんと更新されているのですが挙動がおかしいので直したいです。
発生している問題・エラーメッセージ
データの更新があるまで応答なしになる。(データの更新してから少しの間、応答なしの表示はなくなるがグラフを動かすことはできない)
↑文字化けはpylanceを最新バージョンにしたら解決しました。
該当のソースコード
python
1INPUT_LEN = 10 # 入力の長さ。現時点から10足前までのデータを入力とする。 2PREDICT_INTERVAL = 1 # 予測の更新頻度 (分) 3# 結果のプロット 4fig,ax = plt.subplots() 5def predict(): 6 #データを取得する 7 prices = get_prices(INSTRUMENT,GRANULARITY,COUNT) 8 #sc = MinMaxScaler(feature_range=(0, 1)) 9 prices_for_input = sc.fit_transform(prices) 10 input_value = np.array([prices_for_input[-INPUT_LEN:]]) 11 # 予想値 12 predicted_value = model.predict(input_value) 13 predicted_value = sc.inverse_transform(predicted_value)[0] 14 x = np.arange(len(prices)) 15 # 実際の値のプロット 16 clear_output(wait=True) 17 ax.clear() 18 ax.plot(x, prices, label="real") 19 ax.scatter([x[-1] + 1], predicted_value, 20 color="r", label="predicted_value") 21 ax.legend() 22 #グラフがあるかどうかを判定して処理する 23 if fig.canvas.manager.window: 24 plt.ion() 25 plt.show() 26 else: 27 plt.draw() 28 plt.pause(0.1) 29 print("predicted_value:", predicted_value) 30 31# 定期的に実行する時間とメソッドを設定 32schedule.every(PREDICT_INTERVAL).minutes.do(predict) 33 34# 定期的に実行 35while True: 36 schedule.run_pending() 37 time.sleep(1)
試したこと
plt.ion()を使わないplt.show()はうまくいく
補足情報(FW/ツールのバージョンなど)
VSCでノートパソコンで実行
メモリ不足の可能性あり
コードの改善点を教えていただけるとありがたいです。
回答1件
あなたの回答
tips
プレビュー