code: def on_change(self, attr, old, new):
          
          self._queue.append((attr, old, new))
          if not self._active and self.plot.document:
              self.plot.document.add_timeout_callback(self.process_on_change, 50)
              self._active = True
docs: Process change events adding timeout to process multiple concerted
          value change at once rather than firing off multiple plot updates.