バックエンド全体で Matplotlib を使用した非ブロック的な方法でプロットする
実行をブロックせずに Matplotlib で関数をプロットしようとする場合、次のことが重要です。使用されるバックエンドの影響を考慮してください。解決策として「show(block=False)」が提案されることがありますが、その機能はバックエンドによって異なります。提供された質問に記載されているように、「show(block=False)」は Qt4Agg バックエンドで意図した非ブロッキング動作を生成しません。
この問題に効果的に対処するには、アプローチを組み合わせることをお勧めします。まず、「plt.ion()」を使用して対話モードを有効にする必要があります。これにより、プライマリ コードの実行中に GUI でイベントを処理できるようになります。
次に、プロット ウィンドウを表示するには、'block=False' を指定せずに 'plt.show()' を呼び出します。重要なのは、各プロット操作の後に「plt.pause(.001)」を含める必要があることです。この一時停止により、プロットの再描画などの GUI イベントを処理できるようになります。 「plt.pause()」で指定された時間引数は、一時停止の期間を決定します。
「plt.ion()」、「plt.show()」、「plt.pause()」を組み合わせることで、 001)' を使用すると、使用されるバックエンドに関係なく、実行をブロックすることなく既存のプロット ウィンドウを動的に更新できるようになります。このアプローチにより、プロットの応答性が維持され、継続的なインタラクションが可能になります。
以上がMatplotlib プロットをバックエンド間でノンブロッキングにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。