code: def get_data(self, element, ranges, style):
      xticks, yticks = self._compute_ticks(element, ranges)
  
      if isinstance(element, RGB):
          style.pop("cmap", None)
  
      data = get_raster_array(element)
      if type(element) is Raster:
          l, b, r, t = element.extents
          if self.invert_axes:
              data = data[:, ::-1]
          else:
              data = data[::-1]
      else:
          l, b, r, t = element.bounds.lbrt()
          if self.invert_axes:
              data = data[::-1, ::-1]
  
      if self.invert_axes:
          data = (
              data.transpose([1, 0, 2])
              if isinstance(element, RGB)
              else data.T
          )
          l, b, r, t = b, l, t, r
  
      vdim = element.vdims[0]
      self._norm_kwargs(element, ranges, style, vdim)
      style["extent"] = [l, r, b, t]
      style["origin"] = "upper"
  
      return [data], style, {"xticks": xticks, "yticks": yticks}
  
imports: import sys
  import numpy
  import param
  from packaging.version import Version
  from ...core import CompositeOverlay, Element, traversal
  from ...core.util import isfinite, match_spec, max_range, unique_iterator
  from ...element.raster import RGB, Image, Raster
  from ..util import categorical_legend
  from .chart import PointPlot
  from .element import ColorbarPlot, ElementPlot, LegendPlot, OverlayPlot
  from .plot import GridPlot, MPLPlot, mpl_rc_context
  from .util import get_raster_array, mpl_version
label_desc: Use image node_id 2 for calling the RasterPlot obj's underlying member method code with example usage: obj.get_data(element, ranges, style) and returns: list,  style,  dict