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: Redraw the image canvas
docstr_tok: ["Redraw","the","image","canvas"]
code: def force_refresh(self):
      """Redraw the image canvas"""
      fig_size = self.fig.get_size_inches()
      self.fig.set_size_inches(fig_size)
      self.fig.canvas.draw()
  
imports: import os
  from pathlib import Path
  import numpy
  import matplotlib.pyplot
  import matplotlib.style
  from matplotlib.backends.backend_qt5agg import FigureCanvas
  from matplotlib.figure import Figure
  from PyQt5.QtWidgets import QVBoxLayout, QWidget, QLabel, QSpinBox, QFormLayout, QPushButton, QFileDialog, QSlider
  from PyQt5.QtCore import pyqtSlot, Qt
  from PIL import Image
label_desc: Use image node_id 7 for calling the HyperspectralImageCanvas obj's underlying member method code with example usage: obj.force_refresh() without return types