Class LinearScale


  • public class LinearScale
    extends java.lang.Object
    Class to handle a linear scale for an axis. The computed scales are rounded to be on decimal borders, choosing an appropriate resolution to have between 4 and 31 major tics (3 to 30 intervals). Future versions might use major/minor tics to get even nicer values.
    Since:
    0.2
    Author:
    Erich Schubert
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private double delta
      Scale delta := max - min
      private int log10res
      Scale resolution in log10.
      private double max
      max value of the scale
      static int MAXTICKS
      Maximum number of steps at which to decrease the resolution.
      private double min
      min value of the scale
      private double res
      Scale resolution
      private double ZOOMFACTOR
      Resulting factor.
    • Constructor Summary

      Constructors 
      Constructor Description
      LinearScale​(double min, double max)
      Constructor.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.String formatValue​(double val)
      Format value according to the scales resolution (i.e. appropriate number of digits)
      double getLog10Res()
      Get resolution (scale interval size)
      double getMax()
      Get maximum value (scale, not data).
      double getMin()
      Get minimum value (scale, not data).
      double getRelativeScaled​(double val)
      Covert a relative value to it's scale position
      double getRelativeScaled​(double val, double smax, double smin)
      Covert a relative value to it's scale position
      double getRelativeUnscaled​(double val)
      Covert a relative scale position to the actual value
      double getRelativeUnscaled​(double val, double smin, double smax)
      Covert a relative scale position to the actual value
      double getRes()
      Get resolution (scale interval size)
      double getScaled​(double val)
      Covert a value to it's scale position
      double getScaled​(double val, double smin, double smax)
      Covert a value to it's scale position
      double getUnscaled​(double val)
      Covert a scale position to the actual value
      double getUnscaled​(double val, double smin, double smax)
      Covert a scale position to the actual value
      java.lang.String toString()  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • MAXTICKS

        public static final int MAXTICKS
        Maximum number of steps at which to decrease the resolution.
        See Also:
        Constant Field Values
      • ZOOMFACTOR

        private final double ZOOMFACTOR
        Resulting factor.
      • min

        private double min
        min value of the scale
      • max

        private double max
        max value of the scale
      • res

        private double res
        Scale resolution
      • log10res

        private int log10res
        Scale resolution in log10.
      • delta

        private double delta
        Scale delta := max - min
    • Constructor Detail

      • LinearScale

        public LinearScale​(double min,
                           double max)
        Constructor. Computes a scale covering the range of min-max with between 3 and 30 intervals, rounded to the appropriate number of digits.
        Parameters:
        min - actual minimum in the data
        max - actual maximum in the data
    • Method Detail

      • getMin

        public double getMin()
        Get minimum value (scale, not data).
        Returns:
        min
      • getMax

        public double getMax()
        Get maximum value (scale, not data).
        Returns:
        max
      • getRes

        public double getRes()
        Get resolution (scale interval size)
        Returns:
        scale interval size
      • getLog10Res

        public double getLog10Res()
        Get resolution (scale interval size)
        Returns:
        scale interval size in logarithmic form
      • getScaled

        public double getScaled​(double val)
        Covert a value to it's scale position
        Parameters:
        val - data value
        Returns:
        scale position in the interval [0:1]
      • getUnscaled

        public double getUnscaled​(double val)
        Covert a scale position to the actual value
        Parameters:
        val - scale position in the interval [0:1]
        Returns:
        value on the original scale
      • getRelativeScaled

        public double getRelativeScaled​(double val)
        Covert a relative value to it's scale position
        Parameters:
        val - relative data value
        Returns:
        relative scale position in the interval [0:1]
      • getRelativeUnscaled

        public double getRelativeUnscaled​(double val)
        Covert a relative scale position to the actual value
        Parameters:
        val - relative scale position in the interval [0:1]
        Returns:
        relative value on the original scale
      • getScaled

        public double getScaled​(double val,
                                double smin,
                                double smax)
        Covert a value to it's scale position
        Parameters:
        val - data value
        smin - target scale minimum
        smax - target scale maximum
        Returns:
        scale position in the interval [smin:smax]
      • getUnscaled

        public double getUnscaled​(double val,
                                  double smin,
                                  double smax)
        Covert a scale position to the actual value
        Parameters:
        val - scale position in the interval [smin:smax]
        smin - target scale minimum
        smax - target scale maximum
        Returns:
        value on the original scale
      • getRelativeScaled

        public double getRelativeScaled​(double val,
                                        double smax,
                                        double smin)
        Covert a relative value to it's scale position
        Parameters:
        val - relative data value
        smin - target scale minimum
        smax - target scale maximum
        Returns:
        relative scale position in the interval [smin:smax]
      • getRelativeUnscaled

        public double getRelativeUnscaled​(double val,
                                          double smin,
                                          double smax)
        Covert a relative scale position to the actual value
        Parameters:
        val - relative scale position in the interval [smin:smax]
        smin - target scale minimum
        smax - target scale maximum
        Returns:
        relative value on the original scale
      • formatValue

        public java.lang.String formatValue​(double val)
        Format value according to the scales resolution (i.e. appropriate number of digits)
        Parameters:
        val - Value
        Returns:
        formatted number
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object