2017-02-02 3 views
0

Я написал простой код для анимации. Код создает случайные точки, а затем отображает их во время анимации.Обновления анимации Python

import numpy as np 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 

x = 10*np.random.rand(10,1) 
y = 10*np.random.rand(10,1) 


fig = plt.figure() 
ax = plt.axes(aspect='equal',xlim =(-10,10), ylim = (-10,10)) 
plts = ax.plot([], [], 'o-') 

def init(): 
    plts.set_data([],[]) 
    return plts 

def animate(num,x,y,plots,skip): 
    plts[0].set_data(x[:num*skip],y[:num*skip]) 
    return plts 

skip = 1 
ani = animation.FuncAnimation(fig, 
           animate, 
           frames=10, 
           fargs =(x,y,plts,skip), 
           interval=1000) 


plt.show() 

Во время анимации код отображает все точки. Может ли кто-нибудь сказать мне, как построить только одну точку в кадре и очистить предыдущую точку? Random point plot animation output

ответ

1

В данный момент вы строите все точки в списке, вплоть до индекса num*skip. Каждый кадр num увеличивается на 1 и, следовательно, наносится одна дополнительная точка.

Для построения только num-й пункт, просто используйте

plts[0].set_data(x[num],y[num]) 

 Смежные вопросы

  • Нет связанных вопросов^_^