docstr: Updates an existing plot with data corresponding
  to the key.
docstr_tok: ["Updates","an","existing","plot","with","data","corresponding","to","the","key","."]
code: def update_frame(self, key, ranges=None, plot=None):
      """
      Updates an existing plot with data corresponding
      to the key.
      """
      element = self._get_frame(key)
      self.param.update(**self.lookup_options(element, "plot").options)
      self._get_title_div(key, "12pt")
  
      # Cache frame object id to skip updating data if unchanged
      previous_id = self.handles.get("previous_id", None)
      current_id = element._plot_id
      source = self.handles["source"]
      self.handles["previous_id"] = current_id
      self.static_source = self.dynamic and (current_id == previous_id)
      if (
          element is None
          or (not self.dynamic and self.static)
          or (
              self.streaming
              and self.streaming[0].data is self.current_frame.data
              and not self.streaming[0]._triggering
          )
          or self.static_source
      ):
          if (
              self.static_source
              and hasattr(self, "selected")
              and self.selected is not None
          ):
              self._update_selected(source)
          return
      style = self.lookup_options(element, "style")[self.cyclic_index]
      data, _, style = self.get_data(element, ranges, style)
      columns = self._get_columns(element, data)
      self.handles["table"].columns = columns
      self._update_datasource(source, data)
  
file_path: holoviews/holoviews/plotting/bokeh/tabular.py
imports: import param
  from bokeh.models import Column
  from bokeh.models.widgets import DataTable, DateEditor, DateFormatter, IntEditor, NumberEditor, NumberFormatter, StringEditor, StringFormatter, TableColumn
  from ...core import Dataset, Dimension
  from ...core.util import dimension_sanitizer, isdatetime
  from ...element import ItemTable
  from ...streams import Buffer
  from ..plot import GenericElementPlot
  from .plot import BokehPlot
  from .selection import TabularSelectionDisplay
label_desc: Use image node_id 5 for calling the TablePlot obj's underlying member method code with example usage: obj.update_frame(key, ranges, plot) without return types