質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

561閲覧

リアルタイムにグラフを更新したいが、応答なしになってしまう。

ahodesu

総合スコア3

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

1クリップ

投稿2023/02/23 09:59

編集2023/02/23 15:26

実現したいこと

グラフの応答なしをなくしたい。

前提

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でノートパソコンで実行
メモリ不足の可能性あり
コードの改善点を教えていただけるとありがたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ahodesu

2023/02/23 10:32

print("predicted_value:", predicted_value)の値とグラフで最初に表示するグラフではどちらも最新のデータを表示していますが、次にデータを取得した時グラフの更新が一度止まり次の次からまた更新が始まります。つまりグラフの更新が1ターン分遅れて更新されています。
TakaiY

2023/02/23 13:43

ここは、質問へのコメントを書くところです。 追加したい情報があるのであれば、質問は編集できるので、質問の方に追記したほうがいいですよ。
ahodesu

2023/02/23 14:06

了解です
meg_

2023/02/23 14:34

> メモリ不足の可能性あり 実際どうなんでしょうか?
ahodesu

2023/02/23 14:45

500MBほど空きはあるので多分違うと思います
guest

回答1

0

自己解決

scheduleとplt.pause()のかみ合わせが悪いっぽい
別枠で質問します。

投稿2023/02/23 18:25

ahodesu

総合スコア3

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問