Example usage for org.jfree.data Range getLowerBound

List of usage examples for org.jfree.data Range getLowerBound

Introduction

In this page you can find the example usage for org.jfree.data Range getLowerBound.

Prototype

public double getLowerBound() 

Source Link

Document

Returns the lower bound for the range.

Usage

From source file:com.hazelcast.monitor.server.InstanceChartGenerator.java

static void increaseRange(NumberAxis axis) {
    Range range = axis.getRange();
    double lower = range.getLowerBound();
    double upper = range.getUpperBound();
    double diff = upper - lower;
    axis.setRange(lower - diff * 0.3, upper + diff * 0.3);
}

From source file:org.fhcrc.cpl.viewer.gui.SpectrumChartFactory.java

protected static XYPlot createXYPlot(XYDataset dataset, Color[] colors) {
    // break up into two datasets, one for bars one for lines
    //LinkedList lines =new LinkedList();
    //LinkedList bars = new LinkedList();
    XYDataset seriesLines = new XYSeriesCollection();
    XYDataset seriesBars = new XYSeriesCollection();
    ((XYSeriesCollection) seriesBars).setIntervalWidth(0.0);

    if (dataset instanceof XYSeriesCollection) {
        while (0 < dataset.getSeriesCount()) {
            XYSeries s = ((XYSeriesCollection) dataset).getSeries(0);
            ((XYSeriesCollection) dataset).removeSeries(0);
            Comparable key = s.getKey();
            boolean lines = false;
            if (key instanceof String)
                lines = ((String) key).startsWith("-");
            if (lines)
                ((XYSeriesCollection) seriesLines).addSeries(s);
            else/*from   www.ja v  a  2  s.c om*/
                ((XYSeriesCollection) seriesBars).addSeries(s);
        }
    } else {
        seriesBars = dataset;
    }

    NumberAxis axisDomain = new NumberAxis();
    axisDomain.setAutoRange(true);
    axisDomain.setAutoRangeIncludesZero(false);
    //      axisDomain.setRange(400.0, 1600.0);
    // NOTE: zooming in too far kills the chart, prevent this
    axisDomain.addChangeListener(new AxisChangeListener() {
        public void axisChanged(AxisChangeEvent event) {
            NumberAxis axis = (NumberAxis) event.getSource();
            Range range = axis.getRange();
            if (range.getLength() < 2.0) {
                //_log.info("AxisChangeListener " + range.getLength() + " " + range.toString());
                double middle = range.getLowerBound() + range.getLength() / 2.0;
                axis.setRange(new Range(middle - 1.1, middle + 1.1));
            }
        }
    });

    NumberAxis axisRange = new NumberAxis();
    axisRange.setAutoRange(true);
    axisRange.setAutoRangeIncludesZero(true);

    XYToolTipGenerator toolTipGenerator = new XYToolTipGenerator() {
        public String generateToolTip(XYDataset xyDataset, int s, int i) {
            double X = Math.round(xyDataset.getXValue(s, i) * 1000.0) / 1000.0;
            double Y = Math.round(xyDataset.getYValue(s, i) * 1000.0) / 1000.0;
            return "(" + X + ", " + Y + ")";
        }
    };

    XYBarRenderer barRenderer = new XYBarRenderer();
    //dhmay adding 2009/09/14.  As of jfree 1.0.13, shadows on by default        
    barRenderer.setShadowVisible(false);

    //dhmay adding for jfreechart 1.0.6 upgrade.  If this isn't here, we get a
    //nullPointerException in XYBarRenderer.drawItemLabel
    barRenderer.setBaseItemLabelGenerator(new NullLabelGenerator());

    barRenderer.setSeriesItemLabelsVisible(0, true);
    barRenderer.setBaseToolTipGenerator(toolTipGenerator);

    XYLineAndShapeRenderer lineRenderer = new XYLineAndShapeRenderer();
    lineRenderer.setBaseToolTipGenerator(toolTipGenerator);

    XYPlot xy = new XYPlot(null, axisDomain, axisRange, null);

    int ds = 0;
    if (seriesLines.getSeriesCount() > 0) {
        xy.setDataset(ds, seriesLines);
        xy.setRenderer(ds, lineRenderer);
        xy.mapDatasetToRangeAxis(ds, 0);
        ds++;
        for (int i = 0; i < seriesLines.getSeriesCount(); i++) {
            Comparable key = ((XYSeriesCollection) seriesLines).getSeriesKey(i);
            boolean lines = false;
            if (key instanceof String)
                lines = ((String) key).startsWith("-");
            lineRenderer.setSeriesLinesVisible(i, lines);
            lineRenderer.setSeriesShapesVisible(i, !lines);
        }
    }
    if (seriesBars.getSeriesCount() > 0) {
        xy.setDataset(ds, seriesBars);
        xy.setRenderer(ds, barRenderer);
        xy.mapDatasetToRangeAxis(ds, 0);
        ds++;
    }

    setColors(xy, colors);

    return xy;
}

From source file:org.jfree.data.Range.java

/**
 * Returns a range that includes all the values in the specified
 * <code>range</code> AND the specified <code>value</code>.
 *
 * @param range  the range (<code>null</code> permitted).
 * @param value  the value that must be included.
 *
 * @return A range.//  w  w  w .j a va2s . c o m
 *
 * @since 1.0.1
 */
public static Range expandToInclude(Range range, double value) {
    if (range == null) {
        return new Range(value, value);
    }
    if (value < range.getLowerBound()) {
        return new Range(value, range.getUpperBound());
    } else if (value > range.getUpperBound()) {
        return new Range(range.getLowerBound(), value);
    } else {
        return range;
    }
}

From source file:org.jfree.data.Range.java

/**
 * Shifts the range by the specified amount.
 *
 * @param base  the base range (<code>null</code> not permitted).
 * @param delta  the shift amount.//from   w  ww. j ava 2  s .  com
 * @param allowZeroCrossing  a flag that determines whether or not the
 *                           bounds of the range are allowed to cross
 *                           zero after adjustment.
 *
 * @return A new range.
 */
public static Range shift(Range base, double delta, boolean allowZeroCrossing) {
    ParamChecks.nullNotPermitted(base, "base");
    if (allowZeroCrossing) {
        return new Range(base.getLowerBound() + delta, base.getUpperBound() + delta);
    } else {
        return new Range(shiftWithNoZeroCrossing(base.getLowerBound(), delta),
                shiftWithNoZeroCrossing(base.getUpperBound(), delta));
    }
}

From source file:org.jfree.data.Range.java

/**
 * Creates a new range by adding margins to an existing range.
 *
 * @param range  the range (<code>null</code> not permitted).
 * @param lowerMargin  the lower margin (expressed as a percentage of the
 *                     range length).//from  www.  j  a  v a2 s .  c  o  m
 * @param upperMargin  the upper margin (expressed as a percentage of the
 *                     range length).
 *
 * @return The expanded range.
 */
public static Range expand(Range range, double lowerMargin, double upperMargin) {
    ParamChecks.nullNotPermitted(range, "range");
    double length = range.getLength();
    double lower = range.getLowerBound() - length * lowerMargin;
    double upper = range.getUpperBound() + length * upperMargin;
    if (lower > upper) {
        lower = lower / 2.0 + upper / 2.0;
        upper = lower;
    }
    return new Range(lower, upper);
}

From source file:org.jfree.data.Range.java

/**
 * Creates a new range by combining two existing ranges.
 * <P>//www.j a  v a2s . c o  m
 * Note that:
 * <ul>
 *   <li>either range can be <code>null</code>, in which case the other
 *       range is returned;</li>
 *   <li>if both ranges are <code>null</code> the return value is
 *       <code>null</code>.</li>
 * </ul>
 *
 * @param range1  the first range (<code>null</code> permitted).
 * @param range2  the second range (<code>null</code> permitted).
 *
 * @return A new range (possibly <code>null</code>).
 */
public static Range combine(Range range1, Range range2) {
    if (range1 == null) {
        return range2;
    }
    if (range2 == null) {
        return range1;
    }
    double l = Math.min(range1.getLowerBound(), range2.getLowerBound());
    double u = Math.max(range1.getUpperBound(), range2.getUpperBound());
    return new Range(l, u);
}

From source file:org.jfree.data.Range.java

/**
 * Scales the range by the specified factor.
 *
 * @param base the base range (<code>null</code> not permitted).
 * @param factor the scaling factor (must be non-negative).
 *
 * @return A new range./* w  ww . j  a v  a  2s.  c o m*/
 *
 * @since 1.0.9
 */
public static Range scale(Range base, double factor) {
    ParamChecks.nullNotPermitted(base, "base");
    if (factor < 0) {
        throw new IllegalArgumentException("Negative 'factor' argument.");
    }
    return new Range(base.getLowerBound() * factor, base.getUpperBound() * factor);
}

From source file:net.sf.mzmine.chartbasics.HistogramChartFactory.java

/**
 * Converts from double array to histogram array
 * //  w  w w . j ava  2  s. c o  m
 * @param data
 * @param binwidth
 * @return A histogram array with length = datawidth/binwidth +1 (datawidth = max-min)
 */
public static XYSeries createHistoSeries(double[] data, double binwidth) {
    Range r = getBounds(data);
    return createHistoSeries(data, binwidth, r.getLowerBound(), r.getUpperBound(), null);
}

From source file:net.sf.mzmine.chartbasics.HistogramChartFactory.java

public static JFreeChart createHistogram(double[] data, String yAxisLabel) {
    Range range = getBounds(data);
    return createHistogram(data, yAxisLabel, range.getLowerBound(), range.getUpperBound());
}

From source file:net.sf.mzmine.chartbasics.HistogramChartFactory.java

public static JFreeChart createHistogram(double[] data, double binwidth, String yAxisLabel) {
    Range r = getBounds(data);
    return createHistogram(data, binwidth, yAxisLabel, r.getLowerBound(), r.getUpperBound(), null);
}