Example usage for org.jfree.data.function LineFunction2D LineFunction2D

List of usage examples for org.jfree.data.function LineFunction2D LineFunction2D

Introduction

In this page you can find the example usage for org.jfree.data.function LineFunction2D LineFunction2D.

Prototype

public LineFunction2D(double a, double b) 

Source Link

Document

Constructs a new line function.

Usage

From source file:org.jfree.data.function.LineFunction2DTest.java

/**
 * Some tests for the constructor./*from w  w w  .j  a v a  2s. c om*/
 */
@Test
public void testConstructor() {
    LineFunction2D f = new LineFunction2D(1.0, 2.0);
    assertEquals(1.0, f.getIntercept(), EPSILON);
    assertEquals(2.0, f.getSlope(), EPSILON);
}

From source file:org.jfree.data.function.LineFunction2DTest.java

/**
 * For datasets, the equals() method just checks keys and values.
 *//*from  ww  w  .  j av a2  s.  c  om*/
@Test
public void testEquals() {
    LineFunction2D f1 = new LineFunction2D(1.0, 2.0);
    LineFunction2D f2 = new LineFunction2D(1.0, 2.0);
    assertEquals(f1, f2);
    f1 = new LineFunction2D(2.0, 3.0);
    assertNotEquals(f1, f2);
    f2 = new LineFunction2D(2.0, 3.0);
    assertEquals(f1, f2);
}

From source file:org.jfree.data.function.LineFunction2DTest.java

/**
 * Serialize an instance, restore it, and check for equality.
 */// ww  w .j av a 2s  .  c  o m
@Test
public void testSerialization() {
    LineFunction2D f1 = new LineFunction2D(1.0, 2.0);
    LineFunction2D f2 = (LineFunction2D) TestUtilities.serialised(f1);
    assertEquals(f1, f2);
}

From source file:org.jfree.data.function.LineFunction2DTest.java

/**
 * Objects that are equal should have the same hash code otherwise FindBugs
 * will tell on us.../*from   ww  w.  ja  va2 s.  c o m*/
 */
@Test
public void testHashCode() {
    LineFunction2D f1 = new LineFunction2D(1.0, 2.0);
    LineFunction2D f2 = new LineFunction2D(1.0, 2.0);
    assertEquals(f1.hashCode(), f2.hashCode());
}

From source file:be.ugent.maf.cellmissy.gui.controller.analysis.singlecell.explore.EnclosingBallController.java

private JFreeChart makeFDChart(TrackDataHolder trackDataHolder, FractalDimension fractalDimension) {
    XYSeries series = JFreeChartUtils.generateXYSeries(fractalDimension.getxValues(),
            fractalDimension.getyValues());
    String seriesKey = "track " + trackDataHolder.getTrack().getTrackNumber() + ", well "
            + trackDataHolder.getTrack().getWellHasImagingType().getWell();
    series.setKey(seriesKey);//from ww  w .  ja v  a2  s .c om
    XYSeriesCollection collection = new XYSeriesCollection(series);

    double regression[] = Regression.getOLSRegression(collection, 0);
    // first the intercept, then the slope
    LineFunction2D linefunction2d = new LineFunction2D(regression[0], regression[1]);

    fractalDimension.setFD(regression[1]);
    JFreeChart chart = ChartFactory.createScatterPlot(
            seriesKey + " - FD = " + AnalysisUtils.roundThreeDecimals(fractalDimension.getFD()), "log(1/r)",
            "log(N)", collection, PlotOrientation.VERTICAL, false, true, false);
    // start, end, number of samples
    XYDataset dataset = DatasetUtilities.sampleFunction2D(linefunction2d, series.getMinX(), series.getMaxX(),
            1000, "Fitted Regression Line");
    chart.getXYPlot().setDataset(1, dataset);

    JFreeChartUtils.setupXYPlot(chart.getXYPlot());
    JFreeChartUtils.setupSingleTrackPlot(chart,
            exploreTrackController.getExploreTrackPanel().getTracksList().getSelectedIndex(), true);
    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) chart.getXYPlot().getRenderer();
    renderer.setSeriesLinesVisible(0, false);
    renderer.setSeriesShape(0, new Ellipse2D.Double(0, 0, 8, 8));

    XYItemRenderer renderer2 = new XYLineAndShapeRenderer(true, false);
    renderer2.setSeriesPaint(0, GuiUtils.getDefaultColor());
    chart.getXYPlot().setRenderer(1, renderer2);

    return chart;
}

From source file:com.vgi.mafscaling.ClosedLoop.java

private boolean plotTrimRpmData() {
    if (setXYSeries(runData, rpmArray, trimArray)) {
        double[] ols = Regression
                .getOLSRegression(mafChartPanel.getChartPanel().getChart().getXYPlot().getDataset(1), 0);
        Function2D curve = new LineFunction2D(ols[0], ols[1]);
        currMafData.clear();/*ww w.  j a v  a 2 s.co m*/
        currMafData.add(runData.getMinX(), curve.getValue(runData.getMinX()));
        currMafData.add(runData.getMaxX(), curve.getValue(runData.getMaxX()));
        return true;
    }
    return false;
}

From source file:org.operamasks.faces.render.graph.ChartRenderer.java

private XYSeries createCurveSeries(UICurve curve, XYDataset data, int index) {
    if (data.getItemCount(index) < 2) {
        throw new IllegalArgumentException("Not enough data");
    }//from ww  w . j  a  v  a 2 s.  c  o  m

    Key key = new Key(index, curve.getLegend());

    if (curve instanceof UIAverageLine) {
        double period = ((UIAverageLine) curve).getPeriod();
        double skip = ((UIAverageLine) curve).getSkip();
        if (data instanceof TimeSeriesCollection) {
            TimeSeries ts = ((TimeSeriesCollection) data).getSeries(index);
            return MovingAverage.createMovingAverage(ts, key, (int) period, (int) skip);
        } else {
            return MovingAverage.createMovingAverage(data, index, key, period, skip);
        }
    } else if (curve instanceof UIRegressionLine) {
        RegressionType type = ((UIRegressionLine) curve).getType();
        int samples = ((UIRegressionLine) curve).getSamples();
        if (type == null || type == RegressionType.Linear) {
            double[] p = Regression.getOLSRegression(data, index);
            Function2D f = new LineFunction2D(p[0], p[1]);
            return createFunctionSeries(data, index, key, f, samples);
        } else if (type == RegressionType.Power) {
            double[] p = Regression.getPowerRegression(data, index);
            Function2D f = new PowerFunction2D(p[0], p[1]);
            return createFunctionSeries(data, index, key, f, samples);
        } else {
            throw new IllegalArgumentException(type.toString());
        }
    } else if (curve instanceof UISpline) {
        SplineType type = ((UISpline) curve).getType();
        int samples = ((UISpline) curve).getSamples();
        int degree = ((UISpline) curve).getDegree();
        if (type == null || type == SplineType.BSpline) {
            return BSpline.createBSpline(data, index, key, samples, degree);
        } else if (type == SplineType.CubicSpline) {
            return CubicSpline.createCubicSpline(data, index, key, samples);
        }
    }

    return null;
}

From source file:org.esa.snap.rcp.statistics.ScatterPlotPanel.java

private XYIntervalSeries computeRegressionData(double xStart, double xEnd) {
    if (scatterpointsDataset.getItemCount(0) > 1) {
        final double[] coefficients = Regression.getOLSRegression(scatterpointsDataset, 0);
        final Function2D curve = new LineFunction2D(coefficients[0], coefficients[1]);
        final XYSeries regressionData = DatasetUtilities.sampleFunction2DToSeries(curve, xStart, xEnd, 100,
                "regression line");
        final XYIntervalSeries xyIntervalRegression = new XYIntervalSeries(regressionData.getKey());
        for (int i = 0; i < regressionData.getItemCount(); i++) {
            XYDataItem item = regressionData.getDataItem(i);
            final double x = item.getXValue();
            final double y = item.getYValue();
            xyIntervalRegression.add(x, x, x, y, y, y);
        }//from w w w  .j  a  v a2s.  co  m
        return xyIntervalRegression;
    } else {
        JOptionPane.showMessageDialog(this, "Unable to compute regression line.\n"
                + "At least 2 values are needed to compute regression coefficients.");
        return null;
    }
}

From source file:org.esa.beam.visat.toolviews.stat.ScatterPlotPanel.java

private XYIntervalSeries computeRegressionData(double xStart, double xEnd) {
    if (scatterpointsDataset.getItemCount(0) > 1) {
        final double[] coefficients = Regression.getOLSRegression(scatterpointsDataset, 0);
        final Function2D curve = new LineFunction2D(coefficients[0], coefficients[1]);
        final XYSeries regressionData = DatasetUtilities.sampleFunction2DToSeries(curve, xStart, xEnd, 100,
                "regression line");
        final XYIntervalSeries xyIntervalRegression = new XYIntervalSeries(regressionData.getKey());
        final List<XYDataItem> regressionDataItems = regressionData.getItems();
        for (XYDataItem item : regressionDataItems) {
            final double x = item.getXValue();
            final double y = item.getYValue();
            xyIntervalRegression.add(x, x, x, y, y, y);
        }//w  w w .j  a v  a 2s .c  om
        return xyIntervalRegression;
    } else {
        JOptionPane.showMessageDialog(this, "Unable to compute regression line.\n"
                + "At least 2 values are needed to compute regression coefficients.");
        return null;
    }
}

From source file:CGgui.java

public void addMinima(double value) {
    //updata dataset and graph
    if (value != -1) {
        //remove previous minima for this number of CGs
        for (int i = 0; i < minimadataset.getItemCount(); i++) {
            if (minimadataset.getYValue(0, i) == CurrCG) {
                minimadataset.remove(minimadataset.getX(0, i), (String) key, true);
                break;
            }/*from  w ww .j a  v  a  2s  . co  m*/
        }

        //add new minima
        minimadataset.add(value, (double) CurrCG, (String) key);
    } else
        return;

    //get plot
    XYPlot xyplot = minchart.getXYPlot();
    minchart.clearSubtitles();

    //set render options
    XYLineAndShapeRenderer renderer1 = new XYLineAndShapeRenderer();
    XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();

    Shape shape = xyplot.getRenderer().getSeriesShape(0);
    renderer1.setSeriesLinesVisible(0, false);
    renderer1.setSeriesPaint(0, Color.RED);
    renderer1.setSeriesShape(0, shape);
    if (minimadataset.getItemCount() > 1) {
        renderer2.setSeriesLinesVisible(0, true);
        renderer2.setSeriesShapesVisible(0, false);
        renderer2.setBaseSeriesVisibleInLegend(false);
        renderer2.setSeriesPaint(0, Color.BLUE);
    }

    //get regression
    LineFunction2D localregline = null;
    XYDataset regseries;
    if (minimadataset.getItemCount() > 1) {
        //create the regression
        double[] reg = Regression.getOLSRegression(minimadataset, 0);
        //looking for x values so put x in terms of y
        //y = a + bx     for local
        //x = y/b - a/b  for global
        if (DEBUG)
            PrintText("Regression: y = " + reg[0] + " + " + reg[1] + "x\n");

        //global (in terms of y)
        regLine = new LineFunction2D(-reg[0] / reg[1], 1 / reg[1]);

        //local (in terms of x)
        localregline = new LineFunction2D(reg[0], reg[1]);
        regseries = DatasetUtilities.sampleFunction2D(localregline, minimadataset.getDomainLowerBound(false),
                minimadataset.getDomainUpperBound(false), 2, "Linear Regression");

        //plot line
        xyplot.setDataset(1, regseries);
        xyplot.setRenderer(1, renderer2);
        minchart.addSubtitle(0, new TextTitle("Regression: y = " + reg[0] + " + " + reg[1] + "x"));
    }

    xyplot.setDataset(0, minimadataset);
    xyplot.setRenderer(0, renderer1);

    //f.pack();

    //System.gc();
}