code: def calculateAxis(self, axis, size, minDelta):
          
          labels   = axis.labels()
          count    = len(labels)
          sections = max((count - 1), 1)
          newSize  = size
          delta    = (size - minDelta) / sections
          
          # ensure the sizes fit within our specs
          if labels and delta < minDelta and axis.isDynamicScalingEnabled():
              orig = labels[:]
              total = count - count % 2 # make sure we at least get a 2
              step_range = range(2, total / 2 + 1)
              steps = [i for i in step_range if not (total / float(i)) % 1]
              
              for step in steps:
                  labels = orig[::step]
                  if not orig[-1] in labels:
                      labels.append(orig[-1])
                  count = len(labels)
                  sections = max((count - 1), 1)
                  delta = (size - minDelta) / sections
                  
                  if minDelta < delta:
                      break
              
              if delta < minDelta:
                  labels = [orig[0], orig[-1]]
                  count = 2
                  sections = 1
                  delta = (size - minDelta) / sections
          
          if delta < minDelta:
              newSize = (minDelta * sections) + minDelta
              delta = minDelta
          
          return (labels, count, sections, newSize, delta)
docs: Calculates the rendering information for the given axis based on
          the current size and the minimum required delta.
          
          :param      axis     | <XChartAxis>
                      size     | <int>
                      minDelta | <int>
          
          :return     ([<str>, ..] labels, \
                       <int> count, \
                       <int> sections, \
                       <int> newSize, \
                       <int> delta)