首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用'plotfile‘方法的Python实时绘图

使用'plotfile‘方法的Python实时绘图
EN

Stack Overflow用户
提问于 2017-01-06 02:36:11
回答 1查看 89关注 0票数 1

我必须实时读取"file.txt“中的数字(另一个程序在其中保存一对数字并每1/10秒覆盖它们)。下面的脚本可以绘制数字,但只能绘制我启动绘图时读取的数字对。我尝试使用plt.ion(),但在这种情况下它不起任何作用。每次"file.txt“更新的时候我都想读一读。

我使用的代码是:

代码语言:javascript
复制
import matplotlib.pyplot as plt

plot.plotfile('file.txt', delimiter=' ', cols=(1, 0), 
              names=('Volume', 'Tempo'), marker='o')
plt.show()

如果实时绘图不能用'plotfile‘方法完成,我该怎么做呢?(我尝试了CSV方法和其他堆栈溢出解决方案,但每次读取文件都失败)

谢谢

EN

回答 1

Stack Overflow用户

发布于 2017-01-06 03:12:38

您需要做的是创建一些方法来自动循环文件读取和图形绘制操作。这可以通过for循环来完成,但我更喜欢的方法可能是使用matplotlib.animation.FuncAnimation()。对于你的情况,10fps可能不够快,你必须担心but,但这是一个很好的实践,可以帮助你在MPL中获得更好的速度。为FuncAnimation()提供的example仅通过调用要绘制的线条的美工人员来更新其y数据,从而使用了blitting。如果你使用plt.plotfile(),仅仅更新艺术家并让它正确地获取新数据可能会困难得多,所以我建议你自己读取数据,并调用artists = plt.plot() (或类似的方法)。这使您可以简单地更新线艺术家的数据,而无需重新绘制整个图形:lineartist.set_ydata(dataReadFromFile)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41492268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档