Как построить несколько линий с помощью анимации - PullRequest
0 голосов
/ 22 апреля 2020

Мне нужно построить непрерывный график с несколькими линиями, а ось х должна быть текущим временем. Поэтому я использую анимацию. Но проблема в том, что график не строится. Отображается только пустой график. Можете ли вы сказать мне, что неправильно в следующем коде. функция repeat () в коде продолжает давать новые значения y

 def nestedlist(y1,y):

     r=[]
     for i in range(len(y)):
         y1[i].append(y[i])

     return y1
 j,p=repeat()
 #for ex:j=[1,2,3] k=[[1],[2],[3]] this is how repeat function works.i have to plot these 3 values 
 #as 3 lines these values keep changing when repeat() is called
 N=len(p)

 fig = plt.figure()

 lines = [plt.plot([], [])[0] for _ in range(N)]

 def init():
   m = 0
   while m < N:
     lines[m].set_data([], [])
     m+=1
   return lines
 z=[]
 b=[]
 z,b=repeat()

 x=[]
 def animate(i):
    n=-1

    c=[]
    k=[]
    k,c=repeat()
    while n<N:
      n+=1
      r=[]


      x.append(datetime.now())
      y =nestedlist(b,k)

      r.extend(y[n])

      lines[n].set_data(x, r)
    return lines    


 anim = animation.FuncAnimation(fig, animate, init_func=init, interval=200, blit=True)

 plt.show()
...