Matplotlib のブロック的な性質により、リアルタイム データの視覚化が妨げられる可能性があります。この記事では、元の問い合わせで提供された例を使用して、この問題を解決する解決策を検討します。
元のコードは Qt4Agg をバックエンドとして利用しており、この問題に直面していることが知られています。ノンブロッキング実行の制限。 Qt4Agg はこの機能をサポートしていないため、show(block=False) を使用するとウィンドウがフリーズする可能性があります。
matplotlib でノンブロッキング プロットを実現するには、次の 2 つを実行します。重要な手順は次のとおりです。
これらのソリューションを組み込んだ更新されたコードは次のとおりです。
<code class="python">import numpy as np from matplotlib import pyplot as plt def main(): plt.axis([-50,50,0,10000]) plt.ion() plt.show() x = np.arange(-50, 51) for pow in range(1,5): # plot x^1, x^2, ..., x^4 y = [Xi**pow for Xi in x] plt.plot(x, y) plt.draw() plt.pause(0.001) input("Press [enter] to continue.") if __name__ == '__main__': main()</code>
このコードにより、既存のプロットをノンブロッキングで更新できるようになり、シームレスで応答性の高い視覚化エクスペリエンスが提供されます。
以上がMatplotlib でノンブロッキング プロットを実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。