code: def _set_value(self, value):
          
          if value is None:
              self._value = value
              return
  
          # handle casting to acceptable types
          if isinstance(value, list) or isinstance(value, tuple):
              value = np.array(value)
          if isinstance(value, int):
              value = float(value)
          if isinstance(value, u.Quantity):
              if self.unit == u.dimensionless_unscaled:
                  # then take the unit from quantity and apply it
                  self.unit = value.unit
                  value = value.value
              else:
                  # then convert to the requested unit
                  value = value.to(self.unit).value
  
          # handle setting based on type
          if isinstance(value, np.ndarray):
              # if len(value.shape) != 1:
                  # raise ValueError("value must be a flat array")
  
              self._value = value
          elif isinstance(value, float):
              # TODO: do we want to cast to np.array([value])??
              # this will most likely be used for axhline/axvline
              self._value = value
          # elif isinstance(value, str):
              # TODO: then need to pull from the bundle??? Or will this happen
              # at a higher level
          elif self.direction=='c' and isinstance(value, str):
              self._value = common.coloralias.map(value)
          else:
              raise TypeError("value must be of type array (or similar)")
docs: set the value