          logger.debug("Adding Treeview title")
          lbl = ttk.Label(self.sub_frame, text="Session Stats", anchor=tk.CENTER)
          lbl.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5)
  
      def resize_frame(self, event):
          """ Resize the options frame to fit the canvas """
          logger.debug("Resize Analysis Frame")
          canvas_width = event.width
          canvas_height = event.height
          self.canvas.itemconfig(self.tree_canvas, width=canvas_width, height=canvas_height)
          logger.debug("Resized Analysis Frame")
 
</s> remove         lbl = ttk.Label(self.sub_frame, text="Session Stats", anchor=tk.CENTER)
 </s> add         lbl = ttk.Label(self._sub_frame, text="Session Stats", anchor=tk.CENTER) </s> remove         self.canvas.itemconfig(self.tree_canvas, width=canvas_width, height=canvas_height)
 </s> add         self._canvas.itemconfig(self._tree_canvas, width=canvas_width, height=canvas_height) </s> remove     def add_label(self):
        """ Add tree-view Title """
 </s> add     def _add_label(self):
        """ Add the title above the tree-view. """ </s> remove     def tree_configure(self, helptext):
        """ Build a tree-view widget to hold the sessions stats """
 </s> add     def _tree_configure(self, helptext):
        """ Build a tree-view widget to hold the sessions stats.

        Parameters
        ----------
        helptext: str
            The helptext to display when the mouse is over the tree-view

        Returns
        -------
        list
            The list of tree-view columns
        """ </s> remove                             anchor=tk.W,
                            width=70)
        lblinfo.pack(side=tk.LEFT, padx=5, pady=5, anchor=tk.W)
 </s> add                             anchor=tk.W)
        lblinfo.pack(side=tk.LEFT, expand=True, padx=5, pady=5, anchor=tk.W)
    def _resize_frame(self, event):
        """ Resize the options frame to fit the canvas.

        Parameters
        ----------
        event: `tkinter.Event`
            The tkinter resize event
        """
          logger.debug("Adding Treeview title")
          lbl = ttk.Label(self.sub_frame, text="Session Stats", anchor=tk.CENTER)
          lbl.pack(side=tk.TOP, fill=tk.X, padx=5, pady=5)
  
    def _resize_frame(self, event):
        """ Resize the options frame to fit the canvas.

        Parameters
        ----------
        event: `tkinter.Event`
            The tkinter resize event
        """
    def _resize_frame(self, event):
        """ Resize the options frame to fit the canvas.

        Parameters
        ----------
        event: `tkinter.Event`
            The tkinter resize event
        """
          logger.debug("Resize Analysis Frame")
          canvas_width = event.width
          canvas_height = event.height
          self.canvas.itemconfig(self.tree_canvas, width=canvas_width, height=canvas_height)
          logger.debug("Resized Analysis Frame")
keep keep keep keep replace replace keep keep keep keep keep
 GUI - Stats optimization (#1067)

* Faster stat loading + caching

* Compress data in cache

* Optimize some calculations

* Vectorize smoothing

* stats.Calculations optimized

* Load latest training data from live iterator

* Add options to training graph 
lib/gui/display_analysis.py