code: def _forceRefreshMinMax(self):
          
          #logger.debug("_forceRefreshMinMax", stack_info=True)
  
          # Set the precision from by looking how many decimals are needed to show the difference
          # between the minimum and maximum, given the maximum. E.g. if min = 0.04 and max = 0.07,
          # we would only need zero decimals behind the point as we can write the range as
          # [4e-2, 7e-2]. However if min = 1.04 and max = 1.07, we need 2 decimals behind the point.
          # So, while the range is the same size we need more decimals because we are not zoomed in
          # around zero.
          rangeMin, rangeMax = self.getTargetRange() # [[xmin, xmax], [ymin, ymax]]
          maxOrder = np.log10(np.abs(max(rangeMax, rangeMin)))
          diffOrder = np.log10(np.abs(rangeMax - rangeMin))
  
          extraDigits = 2 # add some extra digits to make each pan/zoom action show a new value.
          precisionF = np.clip(abs(maxOrder - diffOrder) + extraDigits, extraDigits + 1, 25)
          precision = int(precisionF) if np.isfinite(precisionF) else extraDigits + 1
          #logger.debug("maxOrder: {}, diffOrder: {}, precision: {}"
          #             .format(maxOrder, diffOrder, precision))
  
          self.rangeMinCti.precision = precision
          self.rangeMaxCti.precision = precision
          self.rangeMinCti.data, self.rangeMaxCti.data = rangeMin, rangeMax
  
          # Update values in the tree
          self.model.emitDataChanged(self.rangeMinCti)
          self.model.emitDataChanged(self.rangeMaxCti)
docs: Refreshes the min max config values from the axes' state.