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)
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