code: def init_graph(self, datum, options, index=0, is_geo=False, **kwargs):
      if is_geo:
          layer = dict(datum, **options)
          dummy_trace = {
              "type": "scattermapbox",
              "lat": [None],
              "lon": [None],
              "mode": "markers",
              "showlegend": False,
          }
          return dict(mapbox=dict(layers=[layer]), traces=[dummy_trace])
      else:
          image = dict(datum, **options)
          # Create a dummy invisible scatter trace for this image.
          # This serves two purposes
          #  1. The two points placed on the corners of the image are used by the
          #     autoscale logic to allow using the autoscale button to properly center
          #     the image.
          #  2. This trace will be given a UID, and this UID will make it possible to
          #     associate callbacks with the image element. This is needed, in particular
          #     to support datashader
          dummy_trace = {
              "type": "scatter",
              "x": [image["x"], image["x"] + image["sizex"]],
              "y": [image["y"] - image["sizey"], image["y"]],
              "mode": "markers",
              "marker": {"opacity": 0},
              "showlegend": False,
          }
          return dict(images=[image], traces=[dummy_trace])
  
file_path: holoviews/holoviews/plotting/plotly/images.py
imports: import numpy
  from plotly.graph_objs.layout import Image
  from ...core.util import VersionError
  from ...element import Tiles
  from .element import ElementPlot
  from .selection import PlotlyOverlaySelectionDisplay
label_desc: Use image node_id 1 for calling the RGBPlot obj's underlying member method code with example usage: obj.init_graph(datum, options, index, is_geo) and returns: dict, dict