class_docstr: Base class for interactive matplotlib plots.
  
  Args:
      figure: a ``matplotlib.figure.Figure``
      **kwargs: keyword arguments for the
          :class:`fiftyone.core.plots.base.InteractivePlot` constructor
class_docstr_tok: ["Base","class","for","interactive","matplotlib","plots",".","Args",":","figure",":","a","``","matplotlib.figure.Figure","``","*","*","kwargs",":","keyword","arguments","for","the",":","class",":","`","fiftyone.core.plots.base.InteractivePlot","`","constructor"]
docstr: Saves the plot as an image.
  
  Args:
      path: the path to write the image
      dpi (None): a resolution in dots per inch
      **kwargs: keyword arguments for ``matplotlib.pyplot.savefig``
docstr_tok: ["Saves","the","plot","as","an","image",".","Args",":","path",":","the","path","to","write","the","image","dpi","(","None",")",":","a","resolution","in","dots","per","inch","*","*","kwargs",":","keyword","arguments","for","``","matplotlib.pyplot.savefig","``"]
code: def save(self, path, dpi=None, **kwargs):
      """Saves the plot as an image.
  
      Args:
          path: the path to write the image
          dpi (None): a resolution in dots per inch
          **kwargs: keyword arguments for ``matplotlib.pyplot.savefig``
      """
      if "bbox_inches" not in kwargs:
          kwargs["bbox_inches"] = "tight"
  
      if dpi is not None:
          kwargs["dpi"] = dpi
  
      etau.ensure_basedir(path)
      self._figure.savefig(path, **kwargs)
  
imports: import itertools
  import logging
  import numpy
  import matplotlib
  from matplotlib.widgets import Button, LassoSelector
  from matplotlib.path import Path
  import matplotlib.pyplot
  from mpl_toolkits.axes_grid1 import make_axes_locatable
  from mpl_toolkits.axes_grid1.inset_locator import InsetPosition
  from mpl_toolkits.mplot3d import Axes3D
  import sklearn.metrics.pairwise
  import sklearn.metrics
  import eta.core.utils
  import fiftyone.core.context
  import fiftyone.core.utils
  from .base import InteractivePlot
  from .utils import best_fit_line, load_button_icon, parse_lines_inputs, parse_locations, parse_scatter_inputs
label_desc: Use image node_id 4 for calling the InteractiveMatplotlibPlot obj's underlying member method code with example usage: obj.save(path, dpi) without return types