在不断更新的 matplotlib 中绘图
plot in matplotlib that continuously updates
我正在尝试在 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?
但在函数之外打开文件。
函数内部检查是否有新数据。从文件中使用它并不是那么好。
您可以计算您阅读的行数并每次重新打开新文件并跳过该行数。
您可以检查时间戳并阅读最后一行。
您可以读取所有数据并再次绘制整个数据。好的,数据少。
您可以以二进制模式打开文件并检查您读取的字节数,然后读取到下一行分隔符。
我正在尝试在 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?
但在函数之外打开文件。
函数内部检查是否有新数据。从文件中使用它并不是那么好。
您可以计算您阅读的行数并每次重新打开新文件并跳过该行数。
您可以检查时间戳并阅读最后一行。
您可以读取所有数据并再次绘制整个数据。好的,数据少。
您可以以二进制模式打开文件并检查您读取的字节数,然后读取到下一行分隔符。