matplotlib绘制变量写入文件的进度

时间:2018-07-31 09:04:52

标签: python matplotlib

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

1 个答案:

答案 0 :(得分:2)

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

这一切都取决于您打算制作哪种图以及您希望从这些图中提取什么数据。