使用FuncAnimation创建CSV数据的实时图

问题描述

我一直在尝试绘制CSV流(过去几周-由于对Python和编程的了解有限)。

以前,我曾问过一个问题here,但很幸运,我收到了答案,但是我意识到,使用matplotlib(用于循环)会产生非常慢的fps。 这是当前代码

def follow(thefile):
    thefile.seek(0,2) #file handling on the data stream
    while True:
        line = thefile.readline()
        if not line:
            time.sleep(0.1)
            continue
        yield line

logfile = open("C:/Users/r/Desktop/BL/wed10.csv","r")
logrecords = []
Nmax = 2
fig,ax = plt.subplots()

dataSet = []
tstart= time.time()

for record in follow(logfile):
    logrecords.append(record)
    try:
        values = [float(value) if value else 0.0 for value in record.split(',')]
        values2 = [val2 if val2<1.0 else 0.0 for val2 in values]

    except ValueError:
        continue  # read another record
    ax.plot(values2,color='black',label="%02d'%.2fs"%divmod(time.time()%3600,60))
    plt.legend()
    if len(ax.lines) == Nmax : ax.lines[0].remove()
    plt.pause(0.00001)

它可以工作,但是非常慢。我正在考虑改用FuncAnimation/ArtistAnimation,但不确定如何将其与流csv结合使用。 我想绘制每行(每行1个图)并设置动画到另一行。

如何将“ for循环绘图”修改为FuncAnimation或ArtistAnimation? 谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...