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" <alexander.borghgraef.rma@...287...>
Subject: [Matplotlib-users] Animation and imshow
To: matplotlib-users@lists.sourceforge.net
Message-ID:
<9e8c52a20810070610t5204240dq616e8fa2cc1d517b@...288...>
Content-Type: text/plain; charset=ISO-8859-1I'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] = 255frame2 = zeros((200, 200))
frame2[20:40, 30:50] = 255m = 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)