Benjamin Thanks for your advice. I Modified the example in the way that you say and now is working well. Basically I load the image before copy_from_bbox and also I take out the self.ax.clear() in the timerEvent. I'm including the program example with the animation of a dot following a circle path with lena.png in the background.
Also I import this program in a Qt4 application and works well Best regards German # For detailed comments on animation and the techniqes used here, see # the wiki entry http://www.scipy.org/Cookbook/Matplotlib/Animations import os import sys from matplotlib.figure import Figure from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas from PyQt4 import QtCore, QtGui ITERS = 5 import Image import time import numpy as np class BlitQT(FigureCanvas): def __init__(self): FigureCanvas.__init__(self, Figure()) self.ax = self.figure.add_subplot(111) self.draw() file_image="lena.png" #The size of Lena png is 480x480 self.im = Image.open(file_image) self.im1 = self.ax.imshow(self.im, origin='lower') self.old_size = self.ax.bbox.width, self.ax.bbox.height self.ax_background = self.copy_from_bbox(self.ax.bbox) self.cnt = 0 self.acum_cnt=0 self.angle = np.arange(0,2*np.pi,(2*np.pi)/100.) self.x=240+200*np.sin(self.angle) self.y=240+200*np.cos(self.angle) self.circle_line, = self.ax.plot(self.x[0],self.y[0],"o", animated=True) self.draw() self.tstart = time.time() self.startTimer(10) def timerEvent(self, evt): current_size = self.ax.bbox.width, self.ax.bbox.height if self.old_size != current_size: self.old_size = current_size self.draw() self.ax_background = self.copy_from_bbox(self.ax.bbox) self.restore_region(self.ax_background) # update the data self.circle_line.set_xdata(self.x[self.cnt:self.cnt+1]) self.circle_line.set_ydata(self.y[self.cnt:self.cnt+1]) self.ax.draw_artist(self.circle_line) # just redraw the axes rectangle self.blit(self.ax.bbox) if self.cnt==99: self.acum_cnt+=1 self.cnt=0 else: self.cnt += 1 if self.acum_cnt==ITERS: # print the timing info and quit print 'FPS:' , (ITERS*100)/(time.time()-self.tstart) sys.exit() app = QtGui.QApplication(sys.argv) widget = BlitQT() widget.show() sys.exit(app.exec_()) On Mon, Jul 5, 2010 at 6:09 PM, Benjamin Root <ben.r...@ou.edu> wrote: > I should first note that the way to do animations in matplotlib will > probably be improved soon, the current methods should still be valid. > > Ok, the way how I understand how blitting works is that a copy of the static > background is made before any of the "sprites" are drawn. That static > background is then redrawn at each frame to avoid having to do a complete > re-render of it. > > So, if you can display a particular image to a plot before calling > copy_from_bbox(), but after the canvas.draw() call, then the animation > should work as you would like with blitting, and you won't need to repeat > the function call to plot the background in the animation. > > Note, I have not tried this, so please let us know how this works for you. > Ben Root > > > On Mon, Jul 5, 2010 at 5:45 AM, German Ocampo <geroca...@gmail.com> wrote: >> >> Good morning >> >> I have a question regarding to animation in matplotlib using Blit.How >> can I modify the example animation_blit_qt4.py that is in the >> matplotlib website, in order to animate data, but instead of a white >> background I want to have an image (tif or jpg)? >> >> Many thanks for your help >> >> German >> >> >> ------------------------------------------------------------------------------ >> This SF.net email is sponsored by Sprint >> What will you do first with EVO, the first 4G phone? >> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first >> _______________________________________________ >> Matplotlib-users mailing list >> Matplotlib-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > ------------------------------------------------------------------------------ This SF.net email is sponsored by Sprint What will you do first with EVO, the first 4G phone? Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users