使用 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中文网其他相关文章!