'Set 3D x limits.
See :meth:`matplotlib.axes.Axes.set_xlim` for full documentation.'

def set_xlim3d(self, left=None, right=None, emit=True, auto=False, **kw):

    if (u'xmin' in kw):
        left = kw.pop(u'xmin')
    if (u'xmax' in kw):
        right = kw.pop(u'xmax')
    if kw:
        raise ValueError((u'unrecognized    kwargs:    %s' % list(kw)))
    if ((right is None) and cbook.iterable(left)):
        (left, right) = left
    self._process_unit_info(xdata=(left, right))
    left = self._validate_converted_limits(left, self.convert_xunits)
    right = self._validate_converted_limits(right, self.convert_xunits)
    (old_left, old_right) = self.get_xlim()
    if (left is None):
        left = old_left
    if (right is None):
        right = old_right
    if (left == right):
        warnings.warn((u'Attempting    to    set    identical    left==right    results\nin    singular    transformations;    automatically    expanding.\nleft=%s,    right=%s' % (left, right)))
    (left, right) = mtransforms.nonsingular(left, right, increasing=False)
    (left, right) = self.xaxis.limit_range_for_scale(left, right)
    self.xy_viewLim.intervalx = (left, right)
    if (auto is not None):
        self._autoscaleXon = bool(auto)
    if emit:
        self.callbacks.process(u'xlim_changed', self)
        for other in self._shared_x_axes.get_siblings(self):
            if (other is not self):
                other.set_xlim(self.xy_viewLim.intervalx, emit=False, auto=auto)
                if ((other.figure != self.figure) and (other.figure.canvas is not None)):
                    other.figure.canvas.draw_idle()
    self.stale = True
    return (left, right)
