class_docstr: Create plots for `InteractTargetPlot` or `InteractPredictPlot`
  
  Methods
  -------
  plot_matplotlib : plot using matplotlib
  plot_plotly : plot using plotly
class_docstr_tok: ["Create","plots","for","`","InteractTargetPlot","`","or","`","InteractPredictPlot","`","Methods","--","--","--","-","plot_matplotlib",":","plot","using","matplotlib","plot_plotly",":","plot","using","plotly"]
code: def plot_plotly(self):
      nrows, ncols = self.plot_style.nrows, self.plot_style.ncols
      plot_args = {
          "rows": nrows * 2,
          "cols": ncols * 2,
          "horizontal_spacing": 0,
          "vertical_spacing": 0,
      }
      fig = self.plot_style.make_subplots_plotly(plot_args)
      subplot_titles = []
      cb_texts = []
  
      for i, class_idx in enumerate(self.which_classes):
          target, cmap = self.prepare_data(class_idx)
          (
              (nc, nr),
              scatter_grids,
              cb_grids,
              size_grids,
          ) = self.prepare_grids(i)
          (
              cb_domain_x,
              cb_domain_y,
          ), title = self.plot_style.update_plot_domains(
              fig,
              nc,
              nr,
              (scatter_grids, cb_grids, size_grids),
              target,
          )
          subplot_titles.append(title)
  
          value_min, value_max = self._draw_interact_plotly(
              target, cmap, fig, scatter_grids
          )
          cb_texts += self._draw_legend_colorbar_plotly(
              value_min,
              value_max,
              cb_domain_x,
              cb_domain_y,
              cmap,
              fig,
              cb_grids,
          )
          self._draw_legend_sizes_plotly(cmap, fig, size_grids)
  
      annotations = (
          subplot_titles + cb_texts
          if len(self.plot_obj.target) > 1
          else cb_texts
      )
      fig.update_layout(annotations=annotations)
  
      return fig, None
  
imports: from .styles import _prepare_plot_style, _axes_modify, _display_percentile, _modify_legend_axes, _get_axes_label
  import numpy
  from itertools import cycle
  import plotly.express
  import matplotlib
  import matplotlib.pyplot
  from matplotlib.gridspec import GridSpecFromSubplotSpec
  from mpl_toolkits.axes_grid1.inset_locator import inset_axes
  import matplotlib.patheffects
  import plotly.graph_objects
label_desc: Use image node_id 16 for calling the InteractInfoPlotEngine obj's underlying member method code with example usage: obj.plot_plotly() and returns: fig,  None