          xmin = self.calcs.start_iteration
          if self.calcs.start_iteration > 0:
              xmax = self.calcs.iterations + self.calcs.start_iteration
          else:
              xmax = self.calcs.iterations
          xmax = max(1, xmax - 1)
  
          if data:
              ymin, ymax = self.axes_data_get_min_max(data)
              self.ax1.set_ylim(ymin, ymax)
 
</s> remove         self.ax1.set_ylim(0.00, 100.0)
        self.ax1.set_xlim(0, 1)

    def axes_limits_set(self, data):
        """ Set the axes limits """
        xmin = self.calcs.start_iteration
        if self.calcs.start_iteration > 0:
            xmax = self.calcs.iterations + self.calcs.start_iteration
 </s> add         self._ax1.set_ylim(0.00, 100.0)
        self._ax1.set_xlim(0, 1)

    def _axes_limits_set(self, data: List[float]) -> None:
        """ Set the axes limits.

        Parameters
        ----------
        data: list
            The data points for the Y Axis
        """
        xmin = self._calcs.start_iteration
        if self._calcs.start_iteration > 0:
            xmax = self._calcs.iterations + self._calcs.start_iteration </s> remove             ymin, ymax = self.axes_data_get_min_max(data)
            self.ax1.set_ylim(ymin, ymax)
            self.ax1.set_xlim(xmin, xmax)
 </s> add             ymin, ymax = self._axes_data_get_min_max(data)
            self._ax1.set_ylim(ymin, ymax)
            self._ax1.set_xlim(xmin, xmax) </s> remove         if self.calcs.start_iteration > 0:
            end_iteration = self.calcs.start_iteration + self.calcs.iterations
            xrng = list(range(self.calcs.start_iteration, end_iteration))
 </s> add         if self._calcs.start_iteration > 0:
            end_iteration = self._calcs.start_iteration + self._calcs.iterations
            xrng = list(range(self._calcs.start_iteration, end_iteration)) </s> remove             xrng = list(range(self.calcs.iterations))
 </s> add             xrng = list(range(self._calcs.iterations)) </s> remove         fulldata = [item for item in self.calcs.stats.values()]
        self.axes_limits_set(fulldata)
 </s> add         fulldata = list(self._calcs.stats.values())
        self._axes_limits_set(fulldata)
            xmax = self._calcs.iterations
          xmin = self.calcs.start_iteration
          if self.calcs.start_iteration > 0:
              xmax = self.calcs.iterations + self.calcs.start_iteration
          else:
            xmax = self._calcs.iterations
          xmax = max(1, xmax - 1)
  
          if data:
              ymin, ymax = self.axes_data_get_min_max(data)
              self.ax1.set_ylim(ymin, ymax)
keep keep keep keep replace keep keep keep keep keep
 Update matplotlib requirement
  - bump min requirement to 3.5.1
  - Fix custom toolbar for v3.5.1
  - Documentation + linting 
lib/gui/display_graph.py