List of usage examples for org.jfree.data.function LineFunction2D LineFunction2D
public LineFunction2D(double a, double b)
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(); }