使用 Matplotlib 在 While 循环中实时绘图
在这个问题中,用户尝试使用 OpenCV 实时绘制数据, matplotlib。然而,实时绘图并没有按预期工作。用户提供了一个简化的示例,其中绘图不会一次填充一个点,而是等待循环完成。
要解决此问题,我们需要了解 matplotlib 如何实时更新绘图。默认情况下,matplotlib 期望对 plt.show() 的函数调用来显示绘图,然后阻塞直到绘图窗口关闭。这种行为会导致数据无法实时绘制。
解决方案是使用 plt.pause() 函数。 plt.pause(0.05) 绘制新数据,运行 GUI 的事件循环,并将绘图暂停 0.05 秒。这允许绘图实时更新并响应鼠标交互。
这是成功实时绘制 10 个点的修改后的代码:
import numpy as np import matplotlib.pyplot as plt plt.axis([0, 10, 0, 1]) for i in range(10): y = np.random.random() plt.scatter(i, y) plt.pause(0.05) plt.show()
通过此调整,绘图将现在显示生成的每个点,从而实现实时可视化。
以上是如何在 Matplotlib While 循环中实现实时绘图?的详细内容。更多信息请关注PHP中文网其他相关文章!