Пример #1
0
def unwrap_variable_bins(*args,**kwargs):
  """Help function to unwrap variable arguments to return variable name, number of bins,
  minumum and maximum x axis value."""
  if len(args)==4:
    return args # (xvar,nxbins,xmin,xmax)
  elif len(args)==1 and isintance(args[0],Variable):
    return args[0].unwrap()
  LOG.throw(IOError,'unwrap_variable_bins: Could not unwrap arguments "%s" to a Variable object.'%args)
Пример #2
0
def ensurevar(*args,**kwargs):
  """Help function to ensure arguments are one Variable object:
      - xvar, nxbins, xmin, xmax (str, int, float, float)
      - xvar, xbins (str, list)
      - var (str)
  """
  args = unwraplistargs(args)
  if len(args)==4:
    return Variable(*args) # (xvar,nxbins,xmin,xmax)
  elif len(args)==2 and islist(args[1]):
    return Variable(*args)  # (xvar,xbins)
  elif len(args)==1 and isinstance(args[0],Variable):
    return args[0]
  else:
    LOG.throw(IOError,'unwrap_variable_args: Could not unwrap arguments %s, len(args)=%d. Returning None.'%(args,len(args)))
Пример #3
0
 def setbins(self, *args):
     """Set binning: (N,min,max), or bins if it is set"""
     numbers = [a for a in args if isnumber(a)]
     bins = [a for a in args if islist(a)]
     if len(numbers) == 3:
         self.nbins = numbers[0]
         self.min = numbers[1]
         self.max = numbers[2]
         self.bins = None
     elif len(bins) > 0:
         bins = list(bins[0])
         self.nbins = len(bins) - 1
         self.min = bins[0]
         self.max = bins[-1]
         self.bins = bins
     else:
         LOG.throw(IOError,
                   'Variable: bad arguments "%s" for binning!' % (args, ))
Пример #4
0
 def setbins(self,*args):
   """Set binning: (N,min,max), or bins if it is set"""
   LOG.verb('Variable.setbins: setting binning to %s'%(args,),level=2)
   numbers         = [a for a in args if isnumber(a)]
   bins            = [a for a in args if islist(a)  ]
   if len(numbers)==3:
     self.nbins    = numbers[0]
     self.min      = numbers[1]
     self.max      = numbers[2]
     self.bins     = None
   elif len(bins)>0:
     edges         = list(bins[0])
     self.nbins    = len(edges)-1
     self.min      = edges[0]
     self.max      = edges[-1]
     self.bins     = edges
   else:
     LOG.throw(IOError,'Variable: bad arguments "%s" for binning!'%(args,))