带有matplotlib的CSV文件中的实时图形图

时间:2018-08-21 22:29:20

标签: python matplotlib graph

我遵循了来自CSV / TXT文件的实时图上的tutorial,但是当我运行python程序时,没有创建图,相反,终端进入繁忙模式,直到我使用'Ctrl + Z退出'。

由于某种原因,matplotlib中的动画功能对我不起作用。相反,我编写了以下代码,应该可以完成此工作:

import matplotlib.pyplot as plt

while True:
    pullData = open("data1.csv","r").read()
    dataArray = pullData.split('\n')
    xar = []
    yar = []
    for eachLine in dataArray:
        if len(eachLine)>1:
            x,y = eachLine.split(',')
            xar.append(x)
            yar.append(y)
    plt.plot(xar, yar)
    plt.pause(0.05)

plt.show()

但是上面的代码不能正确地从CSV文件中读取数据点并生成错误的图形。

我目前在系统上安装了 Python 3.6.5 :: Anaconda,Inc。。有人可以帮忙吗?预先谢谢你。

1 个答案:

答案 0 :(得分:0)

您可以使用我开发的polt Python package来显示实时数据。

假设您要在CSV文件中显示多个数据列的实时时间序列,则只需将实时CSV流(标头+实时列)传送到polt

(head -n1 myfile.csv; tail -fn0 myfile.csv) | polt add-source -p csv live

polt add-source -p csv live

说明

(
head -n1 myfile.csv; # output first line of CSV file (header) 
tail -fn0 myfile.csv # output new CSV data continuously
) | polt \ # pipe the data into polt
    add-source -p csv # tell polt to interpret data as CSV
    live # do the live plotting

如果您不想直接绘制时间序列,可以检查polt Animator documentation以进一步显示可能性。