1

matplotlib を使用してインタラクティブな図を作成しています。

入力として与えられたデータはリアルタイムで計算され、データを描画する準備ができたときに図を作成するために使用される関数が呼び出されるため、アニメーション モジュールを使用できません。これとは別に、新しいデータは前のデータと同じ軸に表示されず、出力図には 3D プロットと GUI ウィジェットが含まれます。

ユーザーが出力を操作したい場合は、データが描画されるたびに plt.pause(30) を呼び出します。30 秒が経過すると、数値が更新されます。

私がやろうとしているのは、押されたときに plt.pause をキャンセルし、プログラムの実行のブロックを解除する GUI ボタン​​を作成することです。今まで、この単純な (?) 問い合わせに対する答えを見つけることができませんでした。plt.pause() を何らかの方法で GUI ウィジェットにバインドすることで、GUI から停止する方法があるかどうかを知っている人はいますか? そうでない場合、この状況を回避する方法はありますか?

4

1 に答える 1

1

わかりました、主なアイデアが何であるかを理解するために、matplotlib の github に行かなければなりませんでした。次のような関数:

def button_function(val):
   plt.gcf().canvas.stop_event_loop()

を使用してボタンに接続すると、まさに私が望むことを行いますon_clickedこの質問は 1 日私を困惑させ、質問を投稿したとき、10 分以内に答えを見つけました。書き留める方法を教えてくれたstackoverflowに感謝します....

于 2016-12-21T10:22:00.463 に答える