docs: def set_value(self, value, validate=True, todefault=False):
          """
          Set (and validate) the value in the plotter
  
          Parameters
          ----------
          %(Formatoption.set_value.parameters)s
  
          Notes
          -----
          - If the current value in the plotter is None, then it will be set with
            the given `value`, otherwise the current value in the plotter is
            updated
          - If the value is an empty dictionary, the value in the plotter is
            cleared"""
          value = value if not validate else self.validate(value)
          # if the key in the plotter is not already set (i.e. it is initialized
          # with None, we set it)
          if self.plotter[self.key] is None:
              with self.plotter.no_validation:
                  self.plotter[self.key] = value.copy()
          # in case of an empty dict, clear the value
          elif not value:
              self.plotter[self.key].clear()
          # otherwhise we update the dictionary
          else:
              if todefault:
                  self.plotter[self.key].clear()
              self.plotter[self.key].update(value)