Example usage for org.jfree.data.general DatasetUtilities sampleFunction2DToSeries

List of usage examples for org.jfree.data.general DatasetUtilities sampleFunction2DToSeries

Introduction

In this page you can find the example usage for org.jfree.data.general DatasetUtilities sampleFunction2DToSeries.

Prototype

public static XYSeries sampleFunction2DToSeries(Function2D f, double start, double end, int samples,
        Comparable seriesKey) 

Source Link

Document

Creates an XYSeries by sampling the specified function over a fixed range.

Usage

From source file:org.jfree.chart.demo.NormalDistributionDemo2.java

public static XYDataset createDataset() {
    XYSeriesCollection xyseriescollection = new XYSeriesCollection();
    NormalDistributionFunction2D normaldistributionfunction2d = new NormalDistributionFunction2D(0.0D, 1.0D);
    org.jfree.data.xy.XYSeries xyseries = DatasetUtilities.sampleFunction2DToSeries(
            normaldistributionfunction2d, -5.0999999999999996D, 5.0999999999999996D, 121, "N1");
    xyseriescollection.addSeries(xyseries);
    NormalDistributionFunction2D normaldistributionfunction2d1 = new NormalDistributionFunction2D(0.0D,
            Math.sqrt(0.20000000000000001D));
    org.jfree.data.xy.XYSeries xyseries1 = DatasetUtilities.sampleFunction2DToSeries(
            normaldistributionfunction2d1, -5.0999999999999996D, 5.0999999999999996D, 121, "N2");
    xyseriescollection.addSeries(xyseries1);
    NormalDistributionFunction2D normaldistributionfunction2d2 = new NormalDistributionFunction2D(0.0D,
            Math.sqrt(5D));//from   w w  w  .  ja va  2 s.  c  om
    org.jfree.data.xy.XYSeries xyseries2 = DatasetUtilities.sampleFunction2DToSeries(
            normaldistributionfunction2d2, -5.0999999999999996D, 5.0999999999999996D, 121, "N3");
    xyseriescollection.addSeries(xyseries2);
    NormalDistributionFunction2D normaldistributionfunction2d3 = new NormalDistributionFunction2D(-2D,
            Math.sqrt(0.5D));
    org.jfree.data.xy.XYSeries xyseries3 = DatasetUtilities.sampleFunction2DToSeries(
            normaldistributionfunction2d3, -5.0999999999999996D, 5.0999999999999996D, 121, "N4");
    xyseriescollection.addSeries(xyseries3);
    return xyseriescollection;
}

From source file:org.encog.workbench.dialogs.activation.EquationPanel.java

/**
 * Creates a dataset with sample values from the normal distribution
 * function./*from w w  w .j  av  a  2s.co m*/
 *
 * @return A dataset.
 */
public static XYDataset createDataset(ActivationFunction activation, boolean normal) {
    XYSeriesCollection dataset = new XYSeriesCollection();

    if (normal) {
        Function2D n1 = new ActivationFunction2D(activation);// //new NormalDistributionFunction2D(0.0, 1.0);
        XYSeries s1 = DatasetUtilities.sampleFunction2DToSeries(n1, -5.1, 5.1, 121, "Activation Function");
        dataset.addSeries(s1);
    } else {
        if (activation.hasDerivative()) {
            Function2D n2 = new DerivativeFunction2D(activation);
            XYSeries s2 = DatasetUtilities.sampleFunction2DToSeries(n2, -5.1, 5.1, 121, "Derivative Function");
            dataset.addSeries(s2);
        }
    }

    return dataset;
}

From source file:org.encog.workbench.tabs.rbf.RadialBasisFunctionsTab.java

public XYDataset createDataset() {
    String title = rbf.getClass().getSimpleName();
    XYSeriesCollection dataset = new XYSeriesCollection();

    Function2D n1 = new RBFFunction2D(this.rbf);// //new NormalDistributionFunction2D(0.0, 1.0);
    XYSeries s1 = DatasetUtilities.sampleFunction2DToSeries(n1, -5.1, 5.1, 121, title);
    dataset.addSeries(s1);/*  w w  w. j  a v  a2  s  .c o  m*/

    return dataset;
}

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  .java 2s  . 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);
        }//from www  . ja  v a  2  s.c  o  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.snap.rcp.statistics.ScatterPlotPanel.java

private XYIntervalSeries computeAcceptableDeviationData(double lowerBound, double upperBound) {
    final XYSeries identity = DatasetUtilities.sampleFunction2DToSeries(x -> x, lowerBound, upperBound, 100,
            "1:1 line");
    final XYIntervalSeries xyIntervalSeries = new XYIntervalSeries(identity.getKey());
    for (int i = 0; i < identity.getItemCount(); i++) {
        XYDataItem item = identity.getDataItem(i);
        final double x = item.getXValue();
        final double y = item.getYValue();
        if (scatterPlotModel.showAcceptableDeviation) {
            final double acceptableDeviation = scatterPlotModel.acceptableDeviationInterval;
            final double xOff = acceptableDeviation * x / 100;
            final double yOff = acceptableDeviation * y / 100;
            xyIntervalSeries.add(x, x - xOff, x + xOff, y, y - yOff, y + yOff);
        } else {/*w w w  .  j a va2 s .c  om*/
            xyIntervalSeries.add(x, x, x, y, y, y);
        }
    }
    return xyIntervalSeries;
}

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

private XYIntervalSeries computeAcceptableDeviationData(double lowerBound, double upperBound) {
    final Function2D identityFunction = new Function2D() {
        @Override/*from ww  w  .j ava2  s.  co  m*/
        public double getValue(double x) {
            return x;
        }
    };

    final XYSeries identity = DatasetUtilities.sampleFunction2DToSeries(identityFunction, lowerBound,
            upperBound, 100, "1:1 line");
    final XYIntervalSeries xyIntervalSeries = new XYIntervalSeries(identity.getKey());
    final List<XYDataItem> items = identity.getItems();
    for (XYDataItem item : items) {
        final double x = item.getXValue();
        final double y = item.getYValue();
        if (scatterPlotModel.showAcceptableDeviation) {
            final double acceptableDeviation = scatterPlotModel.acceptableDeviationInterval;
            final double xOff = acceptableDeviation * x / 100;
            final double yOff = acceptableDeviation * y / 100;
            xyIntervalSeries.add(x, x - xOff, x + xOff, y, y - yOff, y + yOff);
        } else {
            xyIntervalSeries.add(x, x, x, y, y, y);
        }
    }
    return xyIntervalSeries;
}