我正在用Python开发一个应用程序,该应用程序从串行端口收集数据并针对到达时间绘制收集的数据图。数据的到达时间不确定。我希望在收到数据时更新绘图。我搜索了如何执行此操作,发现了两种方法:
我不喜欢第一个程序,因为该程序会运行很长时间(例如一天),并且会收集数据,因此重新绘制绘图会非常缓慢。第二种方法也不可取,因为数据的到达时间不确定,我只想在接收到数据时更新绘图。
是否有一种方法可以仅在收到数据时通过添加更多点来更新图?
matplotlib
中有多种动画数据的方式,具体取决于你使用的版本。你看过matplotlib
食谱示例吗?另外,请在matplotlib
文档中查看更现代的动画示例。最后,动画API定义了一个函数FuncAnimation,该函数可以对一个函数进行实时动画处理。该功能可能只是你用来获取数据的功能。
每种方法基本上都设置了data
要绘制的对象的属性,因此不需要清除屏幕或图形。data可
以简单地扩展该属性,因此你可以保留先前的点,而只需继续添加到线(或图像或所绘制的任何东西)中。
假设你说数据到达时间不确定,那么最好的选择就是执行以下操作:
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
。
问题内容: 我在这里重新绘制图形时遇到问题。我允许用户在时间刻度(x轴)中指定单位,然后重新计算并调用此函数plots()。我希望该图仅进行更新,而不是将另一个图附加到该图上。 问题答案: 你基本上有两个选择: 精确执行当前操作,但在重新配置数据之前先致电和。这是最慢但最简单,最可靠的选择。 除了重新绘制外,你还可以更新绘图对象的数据。你需要在代码中进行一些更改,但这比每次重新绘制都快得多。但是,
问题内容: 假设我有一个Angular2组件 该组件的模板html文件 最后是此组件的css文件 正如你可以看到有在2个属性和。我希望宽度和高度的css样式与width和height属性的值匹配,并且当这些属性更新时,div的宽度和高度也会更新。完成此操作的正确方法是什么? 问题答案: 尝试这个 [更新]:设置使用百分比
本文向大家介绍利用matplotlib实现根据实时数据动态更新图形,包括了利用matplotlib实现根据实时数据动态更新图形的使用技巧和注意事项,需要的朋友参考一下 我就废话不多说了,直接上代码吧! 二 运行结果 以上这篇利用matplotlib实现根据实时数据动态更新图形就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
问题内容: 听起来这是一个简单的问题,但是我找不到在python中用matplotlib制作的图中更改字体(不是字体大小)的有效解决方案。 我找到了一些教程,可通过修改matplotlib存储默认字体的文件夹中的一些文件来更改matplotlib的默认字体- 请参阅此博客文章-但我正在寻找一种不太激进的解决方案,因为我想使用多个我的绘图中的字体(文本,标签,轴标签等)。 问题答案: 假设您要使用C
问题内容: 我基本上有一个具有多个选项卡的MainActivity。每个选项卡都是一个ShowListFragment,它扩展了Fragment。现在,每个选项卡都包含我从数据库中获取的数据。我有一个MOVE按钮,可将数据从每个片段的一个选项卡移动到另一个选项卡: 片段不会直接更新,而是在选项卡之间滑动了几下(恰好3次)。单击按钮后如何强制片段立即更新?我不想通过ViewPager中的onPage
我希望能够动态更新我的Swing GUI的LookAnd感到属性。在这种情况下,我有一个简单的Swing/Awt游戏,运行的最初是Nimbus。在启动后的不同时间点,我想更改(让我们说)一个细节:我的应用程序的背景颜色。 我可以通过这样做来改变背景颜色: 这“有效”,因为应用程序的背景颜色会正确更改并且程序不会崩溃。但是在命令行上我收到错误: 显然,有些东西是空的,但我不知道它是什么,也不知道如何