2017-02-02 78 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])