実現したいこと
グラフの調子が悪いのでよくしたい。
前提
VSCである程度の時間起きにデータを取得してグラフを作っています。
グラフはちゃんと更新されているのですが挙動がおかしいので直したいです。
発生している問題・エラーメッセージ
拡大縮小の項目が黒くなり、データの更新があるまで応答なしになる。(データの更新してから少しの間、応答なしの表示はなくなるがグラフを動かすことはできない)
該当のソースコード
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.plot(x, prices, label="real")18 ax.scatter([x[-1] + 1], predicted_value,19 color="r", label="predicted_value")20 ax.legend()21 #グラフがあるかどうかを判定して処理する22 if fig.canvas.manager.window:23 plt.ion()24 plt.show()25 else:26 plt.draw()27 plt.pause(0.1)28 print("predicted_value:", predicted_value)29 30# 定期的に実行する時間とメソッドを設定31schedule.every(PREDICT_INTERVAL).minutes.do(predict)32 33# 定期的に実行34while True:35 schedule.run_pending()36 time.sleep(1)
試したこと
plt.ion()を使わないplt.show()はうまくいく
補足情報(FW/ツールのバージョンなど)
VSCでノートパソコンで実行
メモリ不足の可能性あり
コードの改善点を教えていただけるとありがたいです。

0 コメント