You made my day!

Long life to The "close()"

All my ram and swap file was sucked every time a run my script to generate
260 png images...almost killing my ubuntu!

On Tue, May 26, 2009 at 2:23 PM, John Hunter <jdh2...@gmail.com> wrote:

> On Tue, May 26, 2009 at 7:39 AM, Michael Droettboom <md...@stsci.edu>
> wrote:
> > Does it help if you add a call to "plt.clf()" to the bottom of the loop?
> >
> > The pyplot interface keeps a reference around to every figure created
> > until they are destroyed so that it can be obtained again by number
> > (this is functionality inspired by matlab).  Alternatively, you can use
> > the object-oriented interface to create the figure, which does not have
> > this behavior, e.g., replace
> >
> >   fig = plt.figure()
> >
> > with
> >
> >   from matplotlib import figure
> >   fig = figure.Figure()
> >
> > If all this doesn't help, let me know and I'll look further.
> >
> > Cheers,
> > Mike
> >
> > iCy-fLaME wrote:
> >> I was trying to use matplotlib to plot a series of 2D images, but
> >> python was using up a large amount of RAM very quickly. I don't know
> >> matplotlib that well, so the chance are I am missing something, would
> >> appreciate it if anyone can point me to the right direction.
> >>
> >> I am using:
> >> Python 2.4.3 (#1, Jan 21 2009, 01:11:33)
> >> [GCC 4.1.2 20071124 (Red Hat 4.1.2-42)] on linux2
> >>
> >> Example code to run in interpreter mode:
> >>
> >> ########################################
> >> from numpy import zeros
> >>
> >> x = 1651
> >> y = 452
> >> page = zeros((x, y)).astype('float')
> >>
> >> import matplotlib
> >> matplotlib.use('Agg')
> >> import matplotlib.pyplot as plt
> >>
> >> for i in range(1000):
> >>       fig = plt.figure()
> >>       ax = fig.add_subplot(111)
> >>       cax = ax.imshow(page, cmap=plt.cm.spectral_r, extent=(-44, 176,
> -30,
> >> 30), interpolation = 'bicubic', vmin = -0.003, vmax = 0.003)
> >>       title = "Time = %(i)0.3es)" % {'i':i}
> >>       ax.set_title(title,fontsize=14)
> >>
> >>       fig.colorbar(cax, ticks=[-2e-3, -1e-3, 0, 1e-3, 2e-3],
> >> orientation='horizontal')
> >>
> >>       fig.savefig('_tmp.' + str(i) + ".png", dpi=300)
>
>
> This code creates 1000 different figures -- either reuse the same
> figure and clear it as Michael suggests
>
>  fig = plt.figure(1)  # by putting 1 here you reuse the same fig
>  fig.clf()  # and clear it
>
> or close the figure in the loop
>
>  fig = plt.figure()
>  # draw and save here
>  plt.close(fig)
>
> JDH
>
>
> ------------------------------------------------------------------------------
> Register Now for Creativity and Technology (CaT), June 3rd, NYC. CaT
> is a gathering of tech-side developers & brand creativity professionals.
> Meet
> the minds behind Google Creative Lab, Visual Complexity, Processing, &
> iPhoneDevCamp asthey present alongside digital heavyweights like Barbarian
> Group, R/GA, & Big Spaceship. http://www.creativitycat.com
> _______________________________________________
> Matplotlib-users mailing list
> Matplotlib-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/matplotlib-users
>
------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Matplotlib-users mailing list
Matplotlib-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/matplotlib-users

Reply via email to