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

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

Introduction

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

Prototype

public NormalDistributionFunction2D(double mean, double std) 

Source Link

Document

Constructs a new normal distribution function.

Usage

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

public static XYDataset createDataset() {
    NormalDistributionFunction2D normaldistributionfunction2d = new NormalDistributionFunction2D(0.0D, 1.0D);
    XYDataset xydataset = DatasetUtilities.sampleFunction2D(normaldistributionfunction2d, -5D, 5D, 100,
            "Normal");
    return xydataset;
}

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));/*  ww  w  .  ja  v  a  2s  . c o m*/
    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.jfree.data.function.NormalDistributionFunction2DTest.java

/**
 * Some tests for the constructor.//from   w  w  w  .  j a va  2 s  .  co m
 */
@Test
public void testConstructor() {
    NormalDistributionFunction2D f = new NormalDistributionFunction2D(1.0, 2.0);
    assertEquals(1.0, f.getMean(), EPSILON);
    assertEquals(2.0, f.getStandardDeviation(), EPSILON);
}

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

/**
 * A demonstration application showing a normal distribution.
 *
 * @param title  the frame title.//from   w w w  .j a va2s.  com
 */
public NormalDistributionDemo(final String title) {

    super(title);
    Function2D normal = new NormalDistributionFunction2D(0.0, 1.0);
    XYDataset dataset = DatasetUtilities.sampleFunction2D(normal, -5.0, 5.0, 100, "Normal");
    final JFreeChart chart = ChartFactory.createXYLineChart("XY Series Demo", "X", "Y", dataset,
            PlotOrientation.VERTICAL, true, true, false);

    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

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

/**
 * For datasets, the equals() method just checks keys and values.
 *//* ww  w  .ja v a 2  s.co m*/
@Test
public void testEquals() {
    NormalDistributionFunction2D f1 = new NormalDistributionFunction2D(1.0, 2.0);
    NormalDistributionFunction2D f2 = new NormalDistributionFunction2D(1.0, 2.0);
    assertEquals(f1, f2);
    f1 = new NormalDistributionFunction2D(2.0, 3.0);
    assertNotEquals(f1, f2);
    f2 = new NormalDistributionFunction2D(2.0, 3.0);
    assertEquals(f1, f2);
}

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

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

From source file:edu.ucla.stat.SOCR.chart.demo.NormalDistributionDemo.java

/**
 * Creates a dataset with sample values from the normal distribution 
 * function.//from w ww .jav  a  2s.  c om
 * @param isDemo true use the demo data, false use data from the JTable
 * @return A dataset.
 */
protected XYDataset createDataset(boolean isDemo) {
    if (isDemo) {
        mean = 0.0;
        stdDev = 1.0;
        Function2D normal = new NormalDistributionFunction2D(mean, stdDev);
        XYDataset dataset = DatasetUtilities.sampleFunction2D(normal, -10.0, 10.0, 100, "Normal");
        return dataset;
    } else {
        setArrayFromTable();
        String[][] x = new String[xyLength][independentVarLength];
        double[][] y = new double[xyLength][dependentVarLength];

        for (int index = 0; index < independentVarLength; index++)
            for (int i = 0; i < xyLength; i++)
                x[i][index] = indepValues[i][index];

        for (int index = 0; index < dependentVarLength; index++)
            for (int i = 0; i < xyLength; i++) {
                if (depValues[i][index] != null)
                    y[i][index] = Double.parseDouble(depValues[i][index]);
            }

        mean = Double.parseDouble(x[0][0]);
        stdDev = y[0][0];
        Function2D normal = new NormalDistributionFunction2D(mean, stdDev);
        XYDataset dataset = DatasetUtilities.sampleFunction2D(normal, -10.0, 10.0, 100, "Normal");

        return dataset;
    }
}

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

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

From source file:org.datacleaner.widgets.result.NumberAnalyzerResultSwingRenderer.java

@Override
protected void decorate(NumberAnalyzerResult result, DCTable table,
        final DisplayChartCallback displayChartCallback) {
    // find the std. deviation row number.
    int rowNumber = -1;
    {//from   w ww . j a va 2  s.  co m
        for (int i = 0; i < table.getRowCount(); i++) {
            Object value = table.getValueAt(i, 0);
            if (NumberAnalyzer.MEASURE_STANDARD_DEVIATION.equals(value)) {
                rowNumber = i;
                break;
            }
        }
        if (rowNumber == -1) {
            throw new IllegalStateException("Could not determine Std. deviation row number!");
        }
    }

    Crosstab<?> crosstab = result.getCrosstab();

    final InputColumn<? extends Number>[] columns = result.getColumns();
    int columnNumber = 1;
    for (final InputColumn<? extends Number> column : columns) {
        final CrosstabNavigator<?> nav = crosstab.where(NumberAnalyzer.DIMENSION_COLUMN, column.getName());

        final Number numRows = (Number) nav
                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_ROW_COUNT).get();
        if (numRows.intValue() > 0) {
            final Number standardDeviation = (Number) nav
                    .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_STANDARD_DEVIATION).get();
            if (standardDeviation != null) {

                ActionListener action = new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        final Number mean = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_MEAN).get();
                        final Number min = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_LOWEST_VALUE)
                                .get();
                        final Number max = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_HIGHEST_VALUE)
                                .get();

                        final NormalDistributionFunction2D normalDistributionFunction = new NormalDistributionFunction2D(
                                mean.doubleValue(), standardDeviation.doubleValue());
                        final XYDataset dataset = DatasetUtilities.sampleFunction2D(normalDistributionFunction,
                                min.doubleValue(), max.doubleValue(), 100, "Normal");

                        final JFreeChart chart = ChartFactory.createXYLineChart(
                                "Normal distribution of " + column.getName(), column.getName(), "", dataset,
                                PlotOrientation.VERTICAL, false, true, false);
                        ChartUtils.applyStyles(chart);
                        Marker meanMarker = new ValueMarker(mean.doubleValue(), WidgetUtils.BG_COLOR_BLUE_DARK,
                                new BasicStroke(2f));
                        meanMarker.setLabel("Mean");
                        meanMarker.setLabelOffset(new RectangleInsets(70d, 25d, 0d, 0d));
                        meanMarker.setLabelFont(WidgetUtils.FONT_SMALL);
                        chart.getXYPlot().addDomainMarker(meanMarker);

                        final ChartPanel chartPanel = ChartUtils.createPanel(chart, true);
                        displayChartCallback.displayChart(chartPanel);
                    }
                };

                DCPanel panel = AbstractCrosstabResultSwingRenderer.createActionableValuePanel(
                        standardDeviation, Alignment.RIGHT, action, IconUtils.CHART_LINE);
                table.setValueAt(panel, rowNumber, columnNumber);
            }
        }

        columnNumber++;
    }

    super.decorate(result, table, displayChartCallback);
}

From source file:org.eobjects.datacleaner.widgets.result.NumberAnalyzerResultSwingRenderer.java

@Override
protected void decorate(NumberAnalyzerResult result, DCTable table,
        final DisplayChartCallback displayChartCallback) {
    // find the std. deviation row number.
    int rowNumber = -1;
    {//from  w w  w. j  ava2 s. c o  m
        for (int i = 0; i < table.getRowCount(); i++) {
            Object value = table.getValueAt(i, 0);
            if (NumberAnalyzer.MEASURE_STANDARD_DEVIATION.equals(value)) {
                rowNumber = i;
                break;
            }
        }
        if (rowNumber == -1) {
            throw new IllegalStateException("Could not determine Std. deviation row number!");
        }
    }

    Crosstab<?> crosstab = result.getCrosstab();

    final InputColumn<? extends Number>[] columns = result.getColumns();
    int columnNumber = 1;
    for (final InputColumn<? extends Number> column : columns) {
        final CrosstabNavigator<?> nav = crosstab.where(NumberAnalyzer.DIMENSION_COLUMN, column.getName());

        final Number numRows = (Number) nav
                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_ROW_COUNT).get();
        if (numRows.intValue() > 0) {
            final Number standardDeviation = (Number) nav
                    .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_STANDARD_DEVIATION).get();
            if (standardDeviation != null) {

                ActionListener action = new ActionListener() {
                    @Override
                    public void actionPerformed(ActionEvent e) {
                        final Number mean = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_MEAN).get();
                        final Number min = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_LOWEST_VALUE)
                                .get();
                        final Number max = (Number) nav
                                .where(NumberAnalyzer.DIMENSION_MEASURE, NumberAnalyzer.MEASURE_HIGHEST_VALUE)
                                .get();

                        final NormalDistributionFunction2D normalDistributionFunction = new NormalDistributionFunction2D(
                                mean.doubleValue(), standardDeviation.doubleValue());
                        final XYDataset dataset = DatasetUtilities.sampleFunction2D(normalDistributionFunction,
                                min.doubleValue(), max.doubleValue(), 100, "Normal");

                        final JFreeChart chart = ChartFactory.createXYLineChart(
                                "Normal distribution of " + column.getName(), column.getName(), "", dataset,
                                PlotOrientation.VERTICAL, false, true, false);
                        ChartUtils.applyStyles(chart);
                        Marker meanMarker = new ValueMarker(mean.doubleValue(), WidgetUtils.BG_COLOR_BLUE_DARK,
                                new BasicStroke(2f));
                        meanMarker.setLabel("Mean");
                        meanMarker.setLabelOffset(new RectangleInsets(70d, 25d, 0d, 0d));
                        meanMarker.setLabelFont(WidgetUtils.FONT_SMALL);
                        chart.getXYPlot().addDomainMarker(meanMarker);

                        final ChartPanel chartPanel = new ChartPanel(chart);
                        displayChartCallback.displayChart(chartPanel);
                    }
                };

                DCPanel panel = AbstractCrosstabResultSwingRenderer.createActionableValuePanel(
                        standardDeviation, Alignment.RIGHT, action, "images/chart-types/line.png");
                table.setValueAt(panel, rowNumber, columnNumber);
            }
        }

        columnNumber++;
    }

    super.decorate(result, table, displayChartCallback);
}