code: def x_lower_limit(self, limit=None):
          
  
          if limit is None:
              if self._x_lower_limit is None:
                  if self.smallest_x() < 0:
                      if self.smallest_x() == self.largest_x():
                          return int(self.smallest_x() - 1)
                      else:
                          return self.smallest_x()
                  else:
                      return 0
              else:
                  return self._x_lower_limit
          else:
              if not is_numeric(limit):
                  raise TypeError(
                   "lower x limit must be numeric, not '%s'" % str(limit)
                  )
              if limit >= self.largest_x():
                  raise ValueError(
                   "lower x limit must be less than upper limit (%s), not %s" % (
                    str(self.largest_x()), str(limit)
                   )
                  )
              self._x_lower_limit = limit
docs: Returns or sets (if a value is provided) the value at which the
          x-axis should start. By default this is zero (unless there are negative
          values).
  
          :param limit: If given, the chart's x_lower_limit will be set to this.
          :raises ValueError: if you try to make the lower limit larger than the\
          upper limit.