code: def applySettings(self, axisMin=None, axisMax=None, axisLimit=None):
          
          if axisMin is not None and not math.isnan(axisMin):
              self.minValueSource = 'min'
              self.minValue = self.checkFinite(axisMin, 'axis min')
  
          if axisMax == 'max':
              self.maxValueSource = 'extremum'
          elif axisMax is not None and not math.isnan(axisMax):
              self.maxValueSource = 'max'
              self.maxValue = self.checkFinite(axisMax, 'axis max')
  
          if axisLimit is None or math.isnan(axisLimit):
              self.axisLimit = None
          elif axisLimit < self.maxValue:
              self.maxValue = self.checkFinite(axisLimit, 'axis limit')
              self.maxValueSource = 'limit'
              # The limit has already been imposed, so there is no need to
              # remember it:
              self.axisLimit = None
          elif math.isinf(axisLimit):
              # It must be positive infinity, which is the same as no limit:
              self.axisLimit = None
          else:
              # We still need to remember axisLimit to avoid rounding top to
              # a value larger than axisLimit:
              self.axisLimit = axisLimit
  
          self.reconcileLimits()
docs: Apply the specified settings to this axis.
  
          Set self.minValue, self.minValueSource, self.maxValue,
          self.maxValueSource, and self.axisLimit reasonably based on the
          parameters provided.
  
          Arguments:
  
          axisMin -- a finite number, or None to choose a round minimum
              limit that includes all of the data.
  
          axisMax -- a finite number, 'max' to use the maximum value
              contained in the data, or None to choose a round maximum limit
              that includes all of the data.
  
          axisLimit -- a finite number to use as an upper limit on maxValue,
              or None to impose no upper limit.