Below is what I am trying to do, perhaps I am doing something wrong somewhere?
John Hunter-4 wrote: > > > or explicitly reuse the same fig by giving a figure number and clearing > it: > > for i in range(1000): > fig = plt.figure(1) > # plot something > fig.cla() > > JDH > My Program is below. NOTE: The kwargs bit is before I realized how much easier it is just to assign defaults in the definition... (haven't changed it yet). The main thing I am using is FIGURE, which is a list containing the figure, basemap instance, and the axes. I 'pass' these around trying to reuse them as you show above. In the main loop of the program I pass the FIGURE list to three calls to plot_track. I try to reuse all the instances (I found creating the basemap instance to be very slow). At the end of each loop in the mainloop I call: FIGURE[2].cla() Which I understand to clear the axes. Maybe I should also be calling: FIGURE[0].cla() ?? Thank you in advance! def plot_track(lon,lat,**kwargs): """ Plot an longitude,latitude course over a basemap """ if 'region' in kwargs.keys(): region = kwargs['region'] else: region = 1 if 'figname' in kwargs.keys(): figname = kwargs['figname'] else: figname = None if 'FIGURE' in kwargs.keys(): FIGURE = kwargs['FIGURE'] else: FIGURE = [None,None,None] if 'overlay' in kwargs.keys(): overlay = kwargs['overlay'] else: overlay = 0 if 'zlevel' in kwargs.keys(): zlevel = kwargs['zlevel'] else: zlevel = None if 'zsize' in kwargs.keys(): zsize = kwargs['zsize'] else: zsize = np.ones(len(lon)) if 'base' in kwargs.keys(): base = kwargs['base'] else: base = 1 ## Extract plotting kwargs, just makes a dict I can pass to basemap plot command plot_kwargs = set_plotkwargs(kwargs) ##Get fig if exists fig=FIGURE[0] m=FIGURE[1] az=FIGURE[2] nullfmt = NullFormatter() if fig==None: # get a basemap from Basemap passing the region info. exec("fig,m=get_base%s(region=region,coords=(lon,lat))"%base) if az==None: ax=plt.gca() pos = ax.get_position() l, b, w, h = getattr(pos, 'bounds', pos) az = fig.add_axes([l,b,w,h],frameon=False) if az!=None and overlay==0: az.cla() plt.axes(az) #PRINT TRACK cx,cy = m(lon,lat) if zlevel!=None: c=m.scatter(cx,cy,zsize,zlevel,cmap=cm.spectral,marker=marker,faceted=False,zorder=10,alpha=0.35) #m.scatter has no color bar, so create a ghost 'scatter' instance: ax=plt.gca() plt.draw() pos = ax.get_position() l, b, w, h = getattr(pos, 'bounds', pos) jnkax = fig.add_axes([l,b,w,h],frameon=False) axes(jnkax) plt.figure(); plt.scatter(cx,cy,zsize,zlevel,cmap=cm.spectral,marker=marker,faceted=False,zorder=10,alpha=0.75) plt.figure(fig.number); cax = plt.axes([l+w+0.03, b, 0.02, h]) plt.colorbar(cax=cax) # draw colorbar #delete the ghost instance plt.close(2); #make the ax axes active plt.axes(ax); else: m.plot(cx,cy,**plot_kwargs) plt.axes(az) az.xaxis.set_major_formatter( nullfmt ) az.yaxis.set_major_formatter( nullfmt ) plt.setp(az, xticks=[],yticks=[]) az.axesPatch.set_alpha(0.0) if figname: savefig(figname) FIGURE=[fig,m,az] return FIGURE -- View this message in context: http://www.nabble.com/plotting-100%27s-of-figures%2C-mpl-slows-and-consumes-memory%21-tp24543343p24546109.html Sent from the matplotlib - users mailing list archive at Nabble.com. ------------------------------------------------------------------------------ Enter the BlackBerry Developer Challenge This is your chance to win up to $100,000 in prizes! For a limited time, vendors submitting new applications to BlackBerry App World(TM) will have the opportunity to enter the BlackBerry Developer Challenge. See full prize details at: http://p.sf.net/sfu/Challenge _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users