code: def complex_databoxes(ds, script='d[1]+1j*d[2]', escript=None, **kwargs):
      
      datas  = []
      labels = []
      if escript is None: errors = None
      else:             errors = []
  
      for d in ds:
          datas.append(d(script))
          labels.append(_os.path.split(d.path)[-1])
          if not escript is None: errors.append(d(escript))
  
      complex_data(datas, errors, label=labels, **kwargs)
  
      if "draw" in kwargs and not kwargs["draw"]: return
  
      _pylab.ion()
      _pylab.draw()
      _pylab.show()
      
      return ds
docs: Uses databoxes and specified script to generate data and send to 
      spinmob.plot.complex_data()
  
  
      Parameters
      ----------
      ds            
          List of databoxes
      script='d[1]+1j*d[2]' 
          Complex-valued script for data array.
      escript=None      
          Complex-valued script for error bars
  
      See spinmob.plot.complex.data() for additional optional keyword arguments.
      See spinmob.data.databox.execute_script() for more information about scripts.