public static final Point[] smoothSparkLine(final List<Double> DATA_LIST, final double MIN_VALUE, final double MAX_VALUE, final Rectangle GRAPH_BOUNDS, final int NO_OF_DATAPOINTS) {
        int     size   = DATA_LIST.size();
        Point[] points = new Point[size];

        double low  = Statistics.getMin(DATA_LIST);
        double high = Statistics.getMax(DATA_LIST);
        if (Helper.equals(low, high)) {
            low  = MIN_VALUE;
            high = MAX_VALUE;
        }
        double range = high - low;

        double minX  = GRAPH_BOUNDS.getX();
        double maxX  = minX + GRAPH_BOUNDS.getWidth();
        double minY  = GRAPH_BOUNDS.getY();
        double maxY  = minY + GRAPH_BOUNDS.getHeight();
        double stepX = GRAPH_BOUNDS.getWidth() / (NO_OF_DATAPOINTS - 1);
        double stepY = GRAPH_BOUNDS.getHeight() / range;

        for (int i = 0 ; i < size ; i++) {
            points[i] = new Point(minX + i * stepX, maxY - Math.abs(low - DATA_LIST.get(i)) * stepY);
        }

        return Helper.subdividePoints(points, 16);
    }
Returns a "niceScaling" number approximately equal to the range.
Rounds the number if ROUND == true.
Takes the ceiling if ROUND = false.

@param RANGE the value range (maxValue - minValue)
@param ROUND whether to round the result or ceil
@return a "niceScaling" number to be used for the value range
src/main/java/eu/hansolo/tilesfx/tools/Helper.java