使用matplotlib绘制实时数据

时间:2018-06-09 19:51:31

标签: python matplotlib

我试图使用matplotlib创建图表。它显示错误:

ani=animation.FuncAnimation(f,animate, interval=1000)
  File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\animation.py", line 1703, in __init__
    TimedAnimation.__init__(self, fig, **kwargs)
  File "C:\Users\hp\AppData\Local\Programs\Python\Python36\lib\site-packages\matplotlib\animation.py", line 1465, in __init__
    event_source = fig.canvas.new_timer()
AttributeError: 'NoneType' object has no attribute 'new_timer'

我的代码:

 f = Figure(figsize=(5,5), dpi=100)
    a = f.add_subplot(111)


    def animate(i):
        pullData=open("ip.txt","r").read()
        dataList= pullData.split('\n')
        xList=[]
        yList=[]
        for eachLine in dataList:
            if len(eachLine)>1:
                x,y=eachLine.split(',')
                xList.append(int(x))
                yList.append(int(y))

        a.clear()
        a.plot(xList,yList)
        a.show()

    ani=animation.FuncAnimation(f,animate, interval=1000)

1 个答案:

答案 0 :(得分:0)

没有图形画布可以从中获取动画的计时器。

通常你会使用pyplot(import matplotlib.pyplot as plt)让它通过plt.figure()plt.subplots()创建一个带画布的图形。

如果你不这样做,你需要手动将你的图形附加到画布上,此外你当然需要通过Tk,PyQt,Wx等支持的框架之一create the GUI < / p>

您想要采取的路线在问题中不明确,并且取决于您创建的应用程序的最终目的。