我遵循了来自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。。有人可以帮忙吗?预先谢谢你。
答案 0 :(得分:0)
您可以使用我开发的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以进一步显示可能性。