class_docstr: The control widget for setting the visible
  layer, and the background image.
class_docstr_tok: ["The","control","widget","for","setting","the","visible","layer",",","and","the","background","image","."]
docstr: Initialize the  plot image
  
  Args:
      data ([type]): [description]
      image_dimensions ([type]): [description]
docstr_tok: ["Initialize","the","plot","image","Args",":","data","(","[","type","]",")",":","[","description","]","image_dimensions","(","[","type","]",")",":","[","description","]"]
code: def init_plot(self, data, image_dimensions):
      """Initialize the  plot image
  
      Args:
          data ([type]): [description]
          image_dimensions ([type]): [description]
      """
      num_images = data.shape[1]
      self.data = data
      print(f"num images {num_images}")
      self.image_spin.setRange(0, num_images - 1)
      self.image_widget.init_plot(
          data, image_dimensions, self.image_spin.value()
      )
  
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 2 for calling the HyperspectralImageViewer obj's underlying member method code with example usage: obj.init_plot(data, image_dimensions) without return types