def setXlimits(self, lims):
        """Sets the X axis limits of the trace plot

        :param lims: (min, max) of x axis, in same units as data
        :type lims: (float, float)
        """
        # update all "linked", plots
        self.specPlot.setXlim(lims)
        for plot in self.responsePlots.values():
            plot.setXlim(lims)
        # ridiculous...
        sizes = self.splittersw.sizes()
        if len(sizes) > 1:
            if self.badbadbad:
                sizes[0] +=1
                sizes[1] -=1
            else:
                sizes[0] -=1
                sizes[1] +=1
            self.badbadbad = not self.badbadbad
            self.splittersw.setSizes(sizes)

        self._ignore_range_signal = False
Sets the X axis limits of the trace plot

        :param lims: (min, max) of x axis, in same units as data
        :type lims: (float, float)