code: def _sort_by_indep(self, func='get_value', i=None, iunit=None, unit=None,
                         uncover=None, trail=None, linebreak=None,
                         sort_by_indep=None):
  
          
  
          if sort_by_indep is None:
              # TODO: add property of the call?
              sort_by_indep = True
  
          indep_array = self.call.i.get_value(i=i,
                                              unit=iunit,
                                              uncover=uncover,
                                              trail=trail,
                                              linebreak=False,
                                              sort_by_indep=False)
  
          this_array = getattr(self, func)(i=i,
                                           unit=unit,
                                           uncover=uncover,
                                           trail=trail,
                                           linebreak=False,
                                           sort_by_indep=False)
  
          if not (isinstance(indep_array, np.ndarray) and len(indep_array)==len(this_array)):
              sort_by_indep = False
  
          if sort_by_indep:
              # TODO: it might be nice to buffer this at the call level, so making
              # multiple get_value calls doesn't have to recompute the sort-order
              sort_inds = indep_array.argsort()
              return this_array[sort_inds]
          else:
              return this_array
docs: must be called before (or within) _do_linebreak