          """ 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")
  
      def tree_configure(self, helptext):
          """ Build a tree-view widget to hold the sessions stats """
          logger.debug("Configuring Treeview")
 
</s> remove     def resize_frame(self, event):
        """ Resize the options frame to fit the canvas """
 </s> add     def _resize_frame(self, event):
        """ Resize the options frame to fit the canvas.

        Parameters
        ----------
        event: `tkinter.Event`
            The tkinter resize event
        """ </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         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.tree.configure(yscrollcommand=self.scrollbar.set)
        self.tree.tag_configure("total", background="black", foreground="white")
        self.tree.pack(side=tk.TOP, fill=tk.X)
        self.tree.bind("<ButtonRelease-1>", self.select_item)
        Tooltip(self.tree, text=helptext, wraplength=200)
        return self.tree_columns()

    def tree_columns(self):
        """ Add the columns to the totals tree-view """
 </s> add         self._tree.configure(yscrollcommand=self._scrollbar.set)
        self._tree.tag_configure("total", background="black", foreground="white")
        self._tree.bind("<ButtonRelease-1>", self._select_item)
        Tooltip(self._tree, text=helptext, wraplength=200)
        return self._tree_columns()

    def _tree_columns(self):
        """ Add the columns to the totals tree-view.

        Returns
        -------
        list
            The list of tree-view columns
        """ </s> remove     """ Stats frame of analysis tab """
 </s> add     """ Stats frame of analysis tab.

    Holds the tree-view containing the summarized session statistics in the Analysis tab.

    Parameters
    ----------
    parent: :class:`tkinter.Frame`
        The frame within the Analysis Notebook that will hold the statistics
    selected_id: :class:`tkinter.IntVar`
        The tkinter variable that holds the currently selected session ID
    helptext: str
        The help text to display for the summary statistics page
    """
        self._canvas.itemconfig(self._tree_canvas, width=canvas_width, height=canvas_height)
          """ 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")
  
      def tree_configure(self, helptext):
          """ Build a tree-view widget to hold the sessions stats """
          logger.debug("Configuring Treeview")
keep keep keep keep 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