【问题标题】:Live graph plot from a CSV file with matplotlib使用 matplotlib 从 CSV 文件绘制实时图表
【发布时间】:2018-08-21 22:29:20
【问题描述】:

我按照tutorial 的 CSV/TXT 文件的实时图表绘制,但是当我运行 python 程序时,没有创建图表,而是终端进入忙碌模式,直到我使用“Ctrl+Z”退出。

由于某种原因,matplotlib 中的 animate 函数对我不起作用。相反,我编写了以下代码,它应该可以完成这项工作:

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.。请问有人可以帮忙吗?提前谢谢你。

【问题讨论】:

    标签: python matplotlib graph


    【解决方案1】:

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

    假设您想在 CSV 文件中显示实时多个数据列的时间序列,您可以将实时 CSV 流(标题+实时列)通过管道传输到 polt

    (head -n1 myfile.csv; tail -fn0 myfile.csv) | 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 以获取更多显示可能性。

    【讨论】:

    • 很棒的实用工具!
    猜你喜欢
    • 2016-07-03
    • 2019-06-26
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多