python - matplotlib 绘制写入文件的变量的进度
问题描述
我需要找到一种方法来运行 python 脚本来绘制文件中包含的值,但是该图应该持续检查和更新该图,因为该文件是从另一个程序动态更新的.. 有一个解决方案吗?
解决方案
根据Mathieu的建议,我还建议使用运行循环,但是, while True
循环对您的系统来说成本很高。我建议在文件更新后运行一次更新的例程。
您可以使用time.sleep()
(导入时间来使用它)直到您的更新发生,从而节省冗余计数器等。
它应该看起来像这样:
plt.figure() # Opens a figure you can plot in. Redundant, but more understandable
while True: # I suggest replacing with a halting condition/input
#update your data object, denoted obj, from your files.
hold(true)
plot('xlabel', 'ylabel', data=obj)
time.sleep(10) # Assumes Time is imported, this will wait for 10 seconds before looping.
话虽如此,如果您计划重新绘制线图,经过几次迭代后,一张图表中的内容就会变得不清楚。在这种情况下,我会建议两种解决方案,尽管我敢肯定还有更多:
1)为每个恒定的迭代量划分为图/子图。我想说一个图中超过 5 个图表已经很难理解,因此,将其保持在 5 个或更少。
2)绘制每次迭代之间的差异。这更清晰,您可以跟踪两种类型的差异。累积和每次迭代。我认为这非常有用。
如果您要更新的不是折线图,而是 {x,y} 图(数据点)。忽略上面的两个解决方案并绘制。
这一切都取决于您计划制作什么样的情节以及您试图从情节中提取哪些数据。
推荐阅读
- javascript - document.getElementById 没有在我的 React 组件中动态更改样式
- r - 如果在函数中,evalq 如何在正确的环境中获取文件
- linux - 寻找一种在一个衬里中搜索多个字符串以查找 zipgrep 的方法
- github - 有条件地在 GitHub 操作工作流中附加字符串
- spring-boot - spring boot hibernate缓存相关查询
- java - 转换通量
进入通量 - javascript - 我们是否喜欢“expect(selector.isDisplayed()).toBe(true);” 在 chai 断言库中
- magento - Magento 2 总是在注册页面上显示已经有一个使用此电子邮件地址的帐户 即使电子邮件 ID 是新的也总是显示
- python - Python中有没有办法计算多条曲线之间的重叠面积?
- r - 导出到 Excel,所有使用的单元格都加边框并居中