          for item in ["Display", "Scale"]:
              var = tk.StringVar()
  
              cmbframe = ttk.Frame(frame)
              lblcmb = ttk.Label(cmbframe, text="{}:".format(item), width=7, anchor=tk.W)
              cmb = ttk.Combobox(cmbframe, textvariable=var, width=10)
              cmb["values"] = choices[item]
              cmb.current(0)
  
              cmd = self._option_button_reload if item == "Display" else self._graph_scale
 
</s> remove                 text = "Show {}".format(item.title())
 </s> add                 text = f"Show {item.title()}" </s> remove             cmd = getattr(self, "_option_button_{}".format(btntype))
 </s> add             cmd = getattr(self, f"_option_button_{btntype}") </s> remove         self._data = data
 </s> add         self._data = np.nan_to_num(data) </s> remove     def __call__(self):
 </s> add     def __call__(self) -> np.ndarray: </s> remove     def _layout_frames(self):
 </s> add     def _layout_frames(self) -> ttk.Frame:
            lblcmb = ttk.Label(cmbframe, text=f"{item}:", width=7, anchor=tk.W)
          for item in ["Display", "Scale"]:
              var = tk.StringVar()
  
              cmbframe = ttk.Frame(frame)
            lblcmb = ttk.Label(cmbframe, text=f"{item}:", width=7, anchor=tk.W)
              cmb = ttk.Combobox(cmbframe, textvariable=var, width=10)
              cmb["values"] = choices[item]
              cmb.current(0)
  
              cmd = self._option_button_reload if item == "Display" else self._graph_scale
keep keep keep keep replace keep keep keep keep keep
 Bugfixes:
  - Stats graph - Handle NaNs in data
  - logger - de-elevate matplotlib font messages 
lib/gui/popup_session.py