class_docstr: This is the matplotlib based GUI for a single analysis
  It assumes the analysis is simple image data (this could be abstracted)
class_docstr_tok: ["This","is","the","matplotlib","based","GUI","for","a","single","analysis","It","assumes","the","analysis","is","simple","image","data","(","this","could","be","abstracted",")"]
docstr: Cleanup at the canvas close event
docstr_tok: ["Cleanup","at","the","canvas","close","event"]
code: def handle_close(self, evt):  # pylint: disable=unused-argument
      """Cleanup at the canvas close event"""
      self.fig.canvas.stop_event_loop()
      self.on_close()
  
imports: import io
  from enum import Enum
  import numpy
  import matplotlib.pyplot
  import matplotlib.style
  from matplotlib.widgets import RectangleSelector, LassoSelector, EllipseSelector, PolygonSelector
  from matplotlib.path import Path
  from matplotlib.backends.backend_qt5agg import FigureCanvas
  from matplotlib.figure import Figure
  from PyQt5 import QtWidgets, QtCore
  from cursors import DrawingCursors, DrawingShape, DrawingMode
label_desc: Use image node_id 5 for calling the EmbeddingGui obj's underlying member method code with example usage: obj.handle_close(evt) without return types