code: def get_plot(self_or_cls, obj, renderer=None, **kwargs):
          
          if isinstance(obj, DynamicMap) and obj.unbounded:
              dims = ', '.join('%r' % dim for dim in obj.unbounded)
              msg = ('DynamicMap cannot be displayed without explicit indexing '
                     'as {dims} dimension(s) are unbounded. '
                     '\nSet dimensions bounds with the DynamicMap redim.range '
                     'or redim.values methods.')
              raise SkipRendering(msg.format(dims=dims))
  
          # Initialize DynamicMaps with first data item
          initialize_dynamic(obj)
  
          if not isinstance(obj, Plot):
              if not displayable(obj):
                  obj = collate(obj)
                  initialize_dynamic(obj)
              obj = Compositor.map(obj, mode='data', backend=self_or_cls.backend)
  
          if not renderer:
              renderer = self_or_cls
              if not isinstance(self_or_cls, Renderer):
                  renderer = self_or_cls.instance()
          if not isinstance(obj, Plot):
              obj = Layout.from_values(obj) if isinstance(obj, AdjointLayout) else obj
              plot_opts = dict(self_or_cls.plot_options(obj, self_or_cls.size),
                               **kwargs)
              plot = self_or_cls.plotting_class(obj)(obj, renderer=renderer,
                                                     **plot_opts)
              defaults = [kd.default for kd in plot.dimensions]
              init_key = tuple(v if d is None else d for v, d in
                               zip(plot.keys[0], defaults))
              plot.update(init_key)
          else:
              plot = obj
          return plot
docs: Given a HoloViews Viewable return a corresponding plot instance.