在Matplotlib中实现连续更新的图表

3

我正在尝试在matplotlib中制作实时图,这意味着数据来自一个随着新数据不断更新的CSV文件。到目前为止,我没能成功地使图形持续更新。

我的意图是随着时间的推移,图形旧点将会从图形中消失。请有人可以帮助我吗?

这是我的代码:

import matplotlib.pyplot as plt
import matplotlib.animation as animation

import csv
import time



fig=plt.figure()
ax1=fig.add_subplot(1,1,1)


def animate(i):
    graph_data=open('DATA.csv')
    xs=[]
    ys=[]
    for line in graph_data:
        time,hrt=line.split(',')
        xs.append(float(time))
        ys.append(float(hrt))
    ax1.clear()
    ax1.plot(xs,ys,'b',linewidth=0.5)




ani=animation.FuncAnimation(fig,animate,interval=8)
plt.show()
1个回答

0

使用如何在matplotlib中更新/刷新我的图表(动画图表)?
但是在函数之外打开文件。

在函数内部检查是否有新数据。最好不要从文件中使用。

  • 您可以计算读取的行数,每次重新打开文件并跳过该行数。

  • 您可以检查时间戳并读取最后一行。

  • 您可以读取所有数据并再次绘制整个数据。对于少量数据来说可以接受。

  • 您可以以二进制模式打开文件并检查读取的字节数,然后读取到下一个行分隔符。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接