From: Michael <mna...@bl...> - 2008-10-07 22:57:01
|
loop through the data and call clf(): from pylab import * from numpy import * ion() hold(False) frame1 = zeros((200, 200)) frame1[20:40, 20:40] = 255 frame2 = zeros((200, 200)) frame2[20:40, 30:50] = 255 frame3 = zeros((200, 200)) frame3[20:40, 40:60] = 255 frame4 = zeros((200, 200)) frame4[20:40, 50:70] = 255 frame5 = zeros((200, 200)) frame5[20:40, 50:70] = 255 data=[frame1,frame2,frame3,frame4,frame5] for frame in data: m=imshow(frame) m.set_data(frame) clf() show() #close() > Message: 2 > Date: Tue, 7 Oct 2008 15:10:30 +0200 > From: "Alexander Borghgraef" <ale...@gm...> > Subject: [Matplotlib-users] Animation and imshow > To: mat...@li... > Message-ID: > <9e8...@ma...> > Content-Type: text/plain; charset=ISO-8859-1 > > I'm trying to figure out how to do animated graphics in pylab using > imshow, so I made this little 'hello world' equivalent showing a > moving square over two frames. > Problem is I have to call draw twice to refresh the image. Anyone can > explain why this is so (and how to do this more elegantly)? This is > the code: > > from pylab import * > from numpy import * > > ion() > hold(False) > > frame1 = zeros((200, 200)) > frame1[20:40, 20:40] = 255 > > frame2 = zeros((200, 200)) > frame2[20:40, 30:50] = 255 > > m = imshow(frame1) > draw() # shows frame1 > m.set_data(frame2) > draw() # still shows frame1!!! > draw() # and now it shows frame2!?? > > > -- > Alex Borghgraef > > -- "When you think of the long and gloomy history of man, you will find far more hideous crimes have been committed in the name of obedience than have been committed in the name of rebellion". C.P.Snow, "Either-Or" (1961) |