首页 > 解决方案 > matplotlib 绘制写入文件的变量的进度

问题描述

我需要找到一种方法来运行 python 脚本来绘制文件中包含的值,但是该图应该持续检查和更新该图,因为该文件是从另一个程序动态更新的.. 有一个解决方案吗?

标签: pythonmatplotlib

解决方案


根据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} 图(数据点)。忽略上面的两个解决方案并绘制。

这一切都取决于您计划制作什么样的情节以及您试图从情节中提取哪些数据。


推荐阅读