python - 在不断更新的 matplotlib 中绘图

标签 python matplotlib raspberry-pi3

我正在尝试在 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()

最佳答案

使用How to update/refresh my graph (animated graph) after another cycle, with matplotlib?
但在函数之外打开文件。

在函数内部检查是否有新数据。从文件中使用它并不是那么好。

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

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

  • 您可以读取所有数据并再次绘制整个数据。适合少量数据。

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

关于python - 在不断更新的 matplotlib 中绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61189396/

相关文章:

python - 在树莓派上模拟 Gpio 输入进行测试

python - 在 Raspberry Pi 3、python 3.4 上运行 Scrapy

python - 如何在 wxPython 应用程序中使用 py2exe icon_resources?

Python - 在 3D 样条曲线上找到最接近 3D 点的点

python - 使用 Pandas 按升序连接值

python - 标题和标签未显示在直方图中

Python:GUI - 绘图,从实时 GUI 中的像素读取

go - AM2320 传感器 : CRCs doesn't match, 来自传感器的 CRC(0)

python - mitmproxy & python - 忽略所有带有 https/ssl 的主机

python - Foursquare API 请求在版本参数上返回错误