作为数据驱动应用程序的一部分,开发人员经常遇到实时绘制数据的挑战。然而,当尝试在“while”循环中实现实时绘图时,会出现一个常见问题。
考虑以下示例,我们的目标是使用 OpenCV 实时绘制随机数据点:
fig = plt.figure() plt.axis([0, 1000, 0, 1]) i = 0 x = list() y = list() while i < 1000: temp_y = np.random.random() x.append(i) y.append(temp_y) plt.scatter(i, temp_y) i += 1 plt.show()
不幸的是,这段代码无法实时单独绘制点。相反,它会暂停程序的执行,直到循环完成后再显示图形。
启用实时绘图的关键在于在循环内调用 plt.pause(0.05) 函数。该函数不仅使用最新数据更新绘图,还运行 GUI 的事件循环。这允许用户交互,确保绘图在循环执行期间保持响应和交互:
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()
通过合并 plt.pause(0.05),您可以解锁实时绘制数据点的能力 -时间,让您可以在数据流入时将其可视化。
以上是如何在Python中的While循环中实现实时绘图?的详细内容。更多信息请关注PHP中文网其他相关文章!