Hi, This way the code creates empty images, it needs indeed some update where you inserted the comment. However I'm not sure that the benefit in term of memory and speed will be important. A.
PS: I slightly changed the code below since as Jakob noticed: "since you just use one figure object and don't switch it it is not necessary to pass the object to the plot method - it remains active anyway." Fabrice Silva-2 wrote: > > Le jeudi 16 juin 2011 à 07:47 -0700, Alain Francés a écrit : >> Hi Jakob, >> >> yes your solution works and is more elegant! See the code at the end of >> this >> message. >> However using the original code with the Agg backend instead of WXAgg >> also >> works fine, so there is probably a memory leakage problem with WXAgg (see >> the post of David and my reply). >> Thank for your reply and suggestion! > > Have you tried to go further and reuse the AxesImage instance created by > imshow? The API is quite not accessible on official matplotlib > documentation but exists (in the matplotlib.image module) > > CODE > # BOF > import os, tempfile > import matplotlib.pyplot as plt > import numpy as np > import matplotlib as mpl > print '\nBackend:\n' + mpl.get_backend() + '\n' > > def plot_density(filename,i,t,psi_Na, image): > if image is None: > image = plt.imshow(abs(psi_Na)**2,origin = 'lower') > else: > image.set_data(abs(psi_Na)**2) > # Maybe needs some update here. > filename = os.path.join(tempfile.gettempdir(), filename + > '_%04d.png'%i) > plt.savefig(filename) > plt.clf() > return image > > if __name__ == "__main__": > x = np.linspace(-6e-6,6e-6,128,endpoint=False) > y = np.linspace(-6e-6,6e-6,128,endpoint=False) > X,Y = np.meshgrid(x,y) > k = 1000000 > omega = 200 > times = np.linspace(0,100e-3,100,endpoint=False) > fig = plt.figure(figsize=(8,6)) > image = None > for i,t in enumerate(times): > psi_Na = np.sin(k*X-omega*t) > image = plot_density('wavefunction',i,t,psi_Na, image) > print i > plt.close() > # EOF > -- > Fabrice Silva > > > ------------------------------------------------------------------------------ > EditLive Enterprise is the world's most technically advanced content > authoring tool. Experience the power of Track Changes, Inline Image > Editing and ensure content is compliant with Accessibility Checking. > http://p.sf.net/sfu/ephox-dev2dev > _______________________________________________ > Matplotlib-users mailing list > Matplotlib-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/matplotlib-users > > -- View this message in context: http://old.nabble.com/Memory-increasing-while-plotting-in-loop-tp31850163p31867626.html Sent from the matplotlib - users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ EditLive Enterprise is the world's most technically advanced content authoring tool. Experience the power of Track Changes, Inline Image Editing and ensure content is compliant with Accessibility Checking. http://p.sf.net/sfu/ephox-dev2dev _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users