Esempio n. 1
0
    def autoScale(self, maxNumSteps, x1, x2, stepSize):
        """
        Align and divide an interval

        :param int maxNumSteps: Max. number of steps
        :param float x1: First limit of the interval (In/Out)
        :param float x2: Second limit of the interval (In/Out)
        :param float stepSize: Step size
        :return: tuple (x1, x2, stepSize)
        
        .. seealso::
            
            :py:meth:`setAttribute()`
        """
        interval = QwtInterval(x1, x2)
        interval = interval.normalized()
        interval.setMinValue(interval.minValue() - self.lowerMargin())
        interval.setMaxValue(interval.maxValue() + self.upperMargin())
        if self.testAttribute(QwtScaleEngine.Symmetric):
            interval = interval.symmetrize(self.reference())
        if self.testAttribute(QwtScaleEngine.IncludeReference):
            interval = interval.extend(self.reference())
        if interval.width() == 0.0:
            interval = self.buildInterval(interval.minValue())
        stepSize = divideInterval(interval.width(), max([maxNumSteps, 1]),
                                  self.base())
        if not self.testAttribute(QwtScaleEngine.Floating):
            interval = self.align(interval, stepSize)
        x1 = interval.minValue()
        x2 = interval.maxValue()
        if self.testAttribute(QwtScaleEngine.Inverted):
            x1, x2 = x2, x1
            stepSize = -stepSize
        return x1, x2, stepSize
Esempio n. 2
0
    def autoScale(self, maxNumSteps, x1, x2, stepSize):
        """
        Align and divide an interval

        :param int maxNumSteps: Max. number of steps
        :param float x1: First limit of the interval (In/Out)
        :param float x2: Second limit of the interval (In/Out)
        :param float stepSize: Step size
        :return: tuple (x1, x2, stepSize)
        
        .. seealso::
            
            :py:meth:`setAttribute()`
        """
        interval = QwtInterval(x1, x2)
        interval = interval.normalized()
        interval.setMinValue(interval.minValue()-self.lowerMargin())
        interval.setMaxValue(interval.maxValue()+self.upperMargin())
        if self.testAttribute(QwtScaleEngine.Symmetric):
            interval = interval.symmetrize(self.reference())
        if self.testAttribute(QwtScaleEngine.IncludeReference):
            interval = interval.extend(self.reference())
        if interval.width() == 0.:
            interval = self.buildInterval(interval.minValue())
        stepSize = divideInterval(interval.width(),
                                  max([maxNumSteps, 1]), self.base())
        if not self.testAttribute(QwtScaleEngine.Floating):
            interval = self.align(interval, stepSize)
        x1 = interval.minValue()
        x2 = interval.maxValue()
        if self.testAttribute(QwtScaleEngine.Inverted):
            x1, x2 = x2, x1
            stepSize = -stepSize
        return x1, x2, stepSize
Esempio n. 3
0
 def autoScale(self, maxNumSteps, x1, x2, stepSize):
     interval = QwtInterval(x1, x2)
     interval = interval.normalized()
     interval.setMinValue(interval.minValue()-self.lowerMargin())
     interval.setMaxValue(interval.maxValue()+self.upperMargin())
     if self.testAttribute(QwtScaleEngine.Symmetric):
         interval = interval.symmetrize(self.reference())
     if self.testAttribute(QwtScaleEngine.IncludeReference):
         interval = interval.extend(self.reference())
     if interval.width() == 0.:
         interval = self.buildInterval(interval.minValue())
     stepSize = divideInterval(interval.width(),
                               max([maxNumSteps, 1]), self.base())
     if not self.testAttribute(QwtScaleEngine.Floating):
         interval = self.align(interval, stepSize)
     x1 = interval.minValue()
     x2 = interval.maxValue()
     if self.testAttribute(QwtScaleEngine.Inverted):
         x1, x2 = x2, x1
         stepSize = -stepSize
     return x1, x2, stepSize
Esempio n. 4
0
 def autoScale(self, maxNumSteps, x1, x2, stepSize):
     interval = QwtInterval(x1, x2)
     interval = interval.normalized()
     interval.setMinValue(interval.minValue() - self.lowerMargin())
     interval.setMaxValue(interval.maxValue() + self.upperMargin())
     if self.testAttribute(QwtScaleEngine.Symmetric):
         interval = interval.symmetrize(self.reference())
     if self.testAttribute(QwtScaleEngine.IncludeReference):
         interval = interval.extend(self.reference())
     if interval.width() == 0.:
         interval = self.buildInterval(interval.minValue())
     stepSize = divideInterval(interval.width(), max([maxNumSteps, 1]),
                               self.base())
     if not self.testAttribute(QwtScaleEngine.Floating):
         interval = self.align(interval, stepSize)
     x1 = interval.minValue()
     x2 = interval.maxValue()
     if self.testAttribute(QwtScaleEngine.Inverted):
         x1, x2 = x2, x1
         stepSize = -stepSize
     return x1, x2, stepSize