首页 > 后端开发 > Python教程 > 如何在 Matplotlib 中的 While 循环内实现数据实时绘图?

如何在 Matplotlib 中的 While 循环内实现数据实时绘图?

Susan Sarandon
发布: 2024-12-15 12:10:11
原创
398 人浏览过

How Can I Achieve Real-Time Plotting of Data Within a While Loop in Matplotlib?

While 循环中的实时绘图

当尝试实时显示来自视频源的数据时,用户经常会遇到以下困难:在 while 循环内更新绘图。一个典型的问题是绘图保持静态,直到循环完成。此问题源于用于显示动态数据的方法。

在提供的代码片段中:

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.show ()。然而,plt.show() 会阻塞 GUI,并阻止其他代码运行,直到手动关闭窗口,从而导致更新延迟。

要实现实时绘图,需要使用 plt.pause() 。这是修订版:

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)。 plt.pause() 既绘制更新的数据并运行 GUI 的事件循环。 0.05 参数指定 50 毫秒的延迟,让 GUI 有时间显示该点并处理用户交互(例如,关闭窗口)。

此修改后的代码应确保绘图实时平滑更新,允许用户动态可视化数据。

以上是如何在 Matplotlib 中的 While 循环内实现数据实时绘图?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板