如何在不完全重绘的情况下动态更新 Matplotlib 图?

Patricia Arquette
发布: 2024-11-13 16:39:02
原创
364 人浏览过

How to Dynamically Update Matplotlib Plots without Complete Redraws?

在 Matplotlib 中动态更新绘图而不需要完全重绘

从串行端口收集数据并绘制它时,与常见更新相关的效率低下方法。清除并重新绘制整个绘图或使用定时动画可能不切实际或会导致延迟。本文提出了一种替代方法,仅在收到新数据时才允许增量绘图更新。

增量绘图更新

Matplotlib 提供了多种动画技术,包括Func动画函数。此功能可以使特定功能随时间变化的动画。在我们的例子中,我们可以使用这个函数来动画数据获取过程。

实现更新函数

动画方法涉及修改绘制的对象。我们可以通过将新数据点附加到现有数据点来简单地扩展数据属性,而不是清除屏幕或图形。下面是执行此操作的示例函数:

import matplotlib.pyplot as plt
import numpy

hl, = plt.plot([], [])

def update_line(hl, new_data):
    hl.set_xdata(numpy.append(hl.get_xdata(), new_data))
    hl.set_ydata(numpy.append(hl.get_ydata(), new_data))
    plt.draw()
登录后复制

当新数据从串行端口到达时,只需使用新数据调用 update_line 函数即可。这将逐步更新绘图,而不会产生重新绘制整个图形的开销。

以上是如何在不完全重绘的情况下动态更新 Matplotlib 图?的详细内容。更多信息请关注PHP中文网其他相关文章!

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