code: def interpolate_at_i(self, i, unit=None):
          
          if isinstance(self.call.i._value, float):
              if self.call.i._value==i:
                  return self._to_unit(self._value, unit)
              else:
                  return None
  
          # we can't call i._value here because that may point to a string, and
          # we want this to resolve the array
          i_value = self.call.i.get_value(linebreak=False, sort_by_indep=False)
          if len(i_value) != len(self._value):
              raise ValueError("length mismatch with independent-variable")
  
          sort_inds = i_value.argsort()
          indep_value = i_value[sort_inds]
          this_value = self._value[sort_inds]
          return self._to_unit(np.interp(i, indep_value, this_value, left=np.nan, right=np.nan), unit)
docs: access the interpolated value at a give value of i (independent-variable)