code: def plot(self,t=0.,min=-15.,max=15,ns=21,savefilename=None):
          
          if not savefilename == None and os.path.exists(savefilename):
              print("Restoring savefile "+savefilename+" ...")
              savefile= open(savefilename,'rb')
              potx= pickle.load(savefile)
              xs= pickle.load(savefile)
              savefile.close()
          else:
              xs= nu.linspace(min,max,ns)
              potx= nu.zeros(ns)
              for ii in range(ns):
                  potx[ii]= self._evaluate(xs[ii],t=t)
              if not savefilename == None:
                  print("Writing savefile "+savefilename+" ...")
                  savefile= open(savefilename,'wb')
                  pickle.dump(potx,savefile)
                  pickle.dump(xs,savefile)
                  savefile.close()
          return plot.bovy_plot(xs,potx,
                                xlabel=r"$x/x_0$",ylabel=r"$\Phi(x)$",
                                xrange=[min,max])
docs: NAME:
  
             plot
  
          PURPOSE:
  
             plot the potential
  
          INPUT:
  
             t - time to evaluate the potential at
  
             min - minimum x
  
             max - maximum x
  
             ns - grid in x
  
             savefilename - save to or restore from this savefile (pickle)
  
          OUTPUT:
  
             plot to output device
  
          HISTORY:
  
             2010-07-13 - Written - Bovy (NYU)