Example usage for org.jfree.data.xy DefaultXYDataset addSeries

List of usage examples for org.jfree.data.xy DefaultXYDataset addSeries

Introduction

In this page you can find the example usage for org.jfree.data.xy DefaultXYDataset addSeries.

Prototype

public void addSeries(Comparable seriesKey, double[][] data) 

Source Link

Document

Adds a series or if a series with the same key already exists replaces the data for that series, then sends a DatasetChangeEvent to all registered listeners.

Usage

From source file:edu.cmu.sv.modelinference.eventtool.EventVisualizer.java

private void visualizeClasses(ClassificationResult classes, Map<EventClass, Color> clusterColors) {
    DataChart clustersDataChart = new DataChart("Classification chart");
    JFreeChart clusterChart = clustersDataChart.chart("");
    XYPlot clusterPlot = clusterChart.getXYPlot();

    int dataSetIndex = 0;
    Map<Integer, EventClass> dataSetIdx2EvtClass = new HashMap<>(); //ugly
    DefaultXYDataset eventDataSet = new DefaultXYDataset();
    for (EventClass evtCl : classes.getEventClasses()) {
        double[][] clusterDataSet = new double[][] { new double[evtCl.getEvents().size()],
                new double[evtCl.getEvents().size()] };
        int i = 0;
        for (Event data : evtCl.getEvents()) {
            clusterDataSet[0][i] = 0;//  ww w .j a v a 2 s. co m
            clusterDataSet[1][i] = data.getFeature().getData();
            i++;
        }
        eventDataSet.addSeries("Class " + evtCl.getClassId(), clusterDataSet);

        dataSetIdx2EvtClass.put(dataSetIndex, evtCl);
        dataSetIndex++;
    }
    clusterPlot.setDataset(eventDataSet);

    for (Entry<Integer, EventClass> ent : dataSetIdx2EvtClass.entrySet()) {
        int idx = ent.getKey();
        Color clr = clusterColors.get(ent.getValue());
        logger.info("Setting color " + clr + " for event class " + ent.getValue().getClassId() + " with index "
                + idx);
        clusterPlot.getRendererForDataset(clusterPlot.getDataset(0)).setSeriesPaint(idx, clr);
    }

    clustersDataChart.pack();
    RefineryUtilities.centerFrameOnScreen(clustersDataChart);
    clustersDataChart.setVisible(true);
}

From source file:de.bund.bfr.knime.pmmlite.views.chart.ChartCreator.java

private XYDataset createSampleDataSet(Plotable plotable, String id, double minX, double maxX)
        throws ParseException, UnitException {
    double[][] samplePoints = plotable.getFunctionSamplePoints(varX, varY, minX, maxX);

    if (samplePoints != null) {
        DefaultXYDataset sampleDataset = new DefaultXYDataset();

        sampleDataset.addSeries(legend.get(id), samplePoints);

        return sampleDataset;
    }/*from ww  w . jav a  2s  .  c o m*/

    return null;
}

From source file:de.bund.bfr.knime.pmmlite.views.chart.ChartCreator.java

private XYDataset createFunctionDataSet(Plotable plotable, String id, double minX, double maxX)
        throws ParseException, UnitException {
    double[][] points = plotable.getFunctionPoints(varX, varY, minX, maxX);

    if (points == null) {
        return null;
    }/*from w w  w. ja v  a2s  .  co  m*/

    double[][] functionErrors = null;

    if (showConfidence || showPrediction) {
        functionErrors = plotable.getFunctionErrors(varX, varY, minX, maxX, showPrediction);
    }

    if (functionErrors != null) {
        YIntervalSeriesCollection functionDataset = new YIntervalSeriesCollection();
        YIntervalSeries series = new YIntervalSeries(legend.get(id));

        for (int j = 0; j < points[0].length; j++) {
            double error = Double.isNaN(functionErrors[1][j]) ? 0.0 : functionErrors[1][j];

            series.add(points[0][j], points[1][j], points[1][j] - error, points[1][j] + error);
        }

        functionDataset.addSeries(series);

        return functionDataset;
    } else {
        DefaultXYDataset dataSet = new DefaultXYDataset();

        dataSet.addSeries(legend.get(id), points);

        return dataSet;
    }
}

From source file:org.jfree.data.xy.junit.DefaultXYDatasetTest.java

/**
 * Confirm that cloning works./*  ww  w .j a  v  a  2 s .c  o  m*/
 */
public void testCloning() {
    DefaultXYDataset d1 = new DefaultXYDataset();
    DefaultXYDataset d2 = null;
    try {
        d2 = (DefaultXYDataset) d1.clone();
    } catch (CloneNotSupportedException e) {
        e.printStackTrace();
    }
    assertTrue(d1 != d2);
    assertTrue(d1.getClass() == d2.getClass());
    assertTrue(d1.equals(d2));

    // try a dataset with some content...
    double[] x1 = new double[] { 1.0, 2.0, 3.0 };
    double[] y1 = new double[] { 4.0, 5.0, 6.0 };
    double[][] data1 = new double[][] { x1, y1 };
    d1.addSeries("S1", data1);
    try {
        d2 = (DefaultXYDataset) d1.clone();
    } catch (CloneNotSupportedException e) {
        e.printStackTrace();
    }
    assertTrue(d1 != d2);
    assertTrue(d1.getClass() == d2.getClass());
    assertTrue(d1.equals(d2));

    // check that the clone doesn't share the same underlying arrays.
    x1[1] = 2.2;
    assertFalse(d1.equals(d2));
    x1[1] = 2.0;
    assertTrue(d1.equals(d2));
}

From source file:org.jfree.data.xy.XYSeriesTest.java

/**
 * Some checks for an example using the toArray() method.
 *///from   ww w. j a  v  a2s  .c o m
@Test
public void testToArrayExample() {
    XYSeries s = new XYSeries("S");
    s.add(1.0, 11.0);
    s.add(2.0, 22.0);
    s.add(3.5, 35.0);
    s.add(5.0, null);
    DefaultXYDataset dataset = new DefaultXYDataset();
    dataset.addSeries("S", s.toArray());
    assertEquals(1, dataset.getSeriesCount());
    assertEquals(4, dataset.getItemCount(0));
    assertEquals("S", dataset.getSeriesKey(0));
    assertEquals(1.0, dataset.getXValue(0, 0), EPSILON);
    assertEquals(2.0, dataset.getXValue(0, 1), EPSILON);
    assertEquals(3.5, dataset.getXValue(0, 2), EPSILON);
    assertEquals(5.0, dataset.getXValue(0, 3), EPSILON);
    assertEquals(11.0, dataset.getYValue(0, 0), EPSILON);
    assertEquals(22.0, dataset.getYValue(0, 1), EPSILON);
    assertEquals(35.0, dataset.getYValue(0, 2), EPSILON);
    assertTrue(Double.isNaN(dataset.getYValue(0, 3)));
}

From source file:OAT.trading.thread.BacktestThread.java

private void showEquityChart(String title, double[][] data) {
    if (data == null || data.length == 0) {
        return;// w w  w .j a va 2 s.  co  m
    }

    DefaultXYDataset dataset = new DefaultXYDataset();
    dataset.addSeries("", data);

    JFreeChart chart = ChartFactory.createTimeSeriesChart("", "", "", dataset, false, false, false);

    new BasicChartFrame(title, chart).setVisible(true);
}

From source file:analysis.postRun.PostRunWindow.java

/** Method which creates and returns a graph in a chartpanel.
 * /*from www. j  a v a  2 s. c o m*/
 * @param dSeries
 *             Which dataSeries to make a graph of.
 *       title
 *             Title for the graph.
 *      xTitle
 *             Title for the x axis.     
 *       yTitle
 *             Title for the y axis.
 *      legend
 *             Whether or not to include a legend - true if multiple series are to be shown.
 */
private ChartPanel getSChart(double[][][] dSeries, double[][][] err, String title, String xTitle, String yTitle,
        Boolean legend, Boolean percentage) {

    int seriesNum = dSeries.length;
    DefaultXYDataset temp = new DefaultXYDataset();
    for (int j = 0; j < seriesNum; j++) {
        temp.addSeries(j, dSeries[j]);
    }
    JFreeChart chart = ChartFactory.createXYLineChart(title, xTitle, yTitle, temp, PlotOrientation.VERTICAL,
            legend, true, false);

    if (percentage) {
        chart.getXYPlot().getRangeAxis().setRange(0.0, 100.0);
    }

    for (int i = 0; i < seriesNum; i++) {
        plotErrorBars(chart, dSeries[i], err[i]);
    }

    if (save) {
        try {
            //System.out.println("Saving charts.");
            ChartUtilities.saveChartAsPNG(
                    new File(currFile.substring(0, currFile.length() - 4) + title + "Chart"), chart, 1200, 800);
        } catch (IOException e) {
            System.err.println(e.getMessage());
            //e.printStackTrace();
        }
    }

    return new ChartPanel(chart);
}

From source file:org.jax.maanova.test.gui.VolcanoPlotPanel.java

private void updateDataPoints() {
    this.cachedXYData = null;
    XYProbeData xyData = this.getXYData();

    DefaultXYDataset xyDataSet = new DefaultXYDataset();
    int[] selectedIndices = this.selectedIndices;
    if (selectedIndices.length == 0) {
        xyDataSet.addSeries("data", new double[][] { xyData.getXData(), xyData.getYData() });
    } else {// ww w  .  ja v  a  2s . co  m
        double[] xData = xyData.getXData();
        double[] yData = xyData.getYData();
        int[] dataIndices = xyData.getProbeIndices();

        double[] normalXData = new double[xData.length - selectedIndices.length];
        double[] normalYData = new double[xData.length - selectedIndices.length];

        double[] selectedXData = new double[selectedIndices.length];
        double[] selectedYData = new double[selectedIndices.length];

        int selectionIndex = 0;
        for (int i = 0; i < xData.length; i++) {
            if (selectionIndex < selectedIndices.length && dataIndices[i] == selectedIndices[selectionIndex]) {
                // this is one of the selected points
                selectedXData[selectionIndex] = xData[i];
                selectedYData[selectionIndex] = yData[i];

                selectionIndex++;
            } else {
                // this is not a selected point
                normalXData[i - selectionIndex] = xData[i];
                normalYData[i - selectionIndex] = yData[i];
            }
        }

        xyDataSet.addSeries("data", new double[][] { normalXData, normalYData });
        xyDataSet.addSeries("selected data", new double[][] { selectedXData, selectedYData });
    }

    JFreeChart scatterPlot = ChartFactory.createScatterPlot(this.chartConfigurationDialog.getChartTitle(),
            this.chartConfigurationDialog.getXAxisLabel(), this.chartConfigurationDialog.getYAxisLabel(),
            xyDataSet, PlotOrientation.VERTICAL, false, false, false);

    XYPlot xyPlot = (XYPlot) scatterPlot.getPlot();
    xyPlot.setRenderer(PlotUtil.createSimpleScatterPlotRenderer());
    if (this.viewArea != null) {
        PlotUtil.rescaleXYPlot(this.viewArea, xyPlot);
    }

    this.saveGraphImageAction.setChart(scatterPlot);
    this.chartPanel.setChart(scatterPlot);
}

From source file:net.bioclipse.chart.ChartUtils.java

public static void handleCellChangeEvent(CellChangedEvent e) {
    //      Iterator<CellChangeListener> iterator = listeners.iterator();
    //      while( iterator.hasNext() )
    //      {//w w w .  j av  a2  s. c om
    //         CellChangeListener listener = iterator.next();
    //         listener.handleCellChangeEvent(e);
    //      }
    Set<JFreeChart> keySet = chartManager.keySet();
    Iterator<JFreeChart> iterator = keySet.iterator();
    while (iterator.hasNext()) {
        JFreeChart chart = iterator.next();

        ChartDescriptor desc = chartManager.get(chart);

        String domainLabel = desc.getXLabel();
        String rangeLabel = desc.getYLabel();
        CellData data = e.getCellData();

        if (domainLabel.equals(data.getColName()) || rangeLabel.equals(data.getColName())) {
            DefaultXYDataset dataset = (DefaultXYDataset) chart.getXYPlot().getDataset();
            int itemCount = dataset.getItemCount(0);
            double[] yValues = new double[itemCount];
            double[] xValues = new double[itemCount];
            for (int i = 0; i < itemCount; i++) {
                double x = dataset.getXValue(0, i);
                double y = dataset.getYValue(0, i);
                xValues[i] = x;
                yValues[i] = y;
            }
            int indices[] = desc.getSourceIndices();
            if (domainLabel.equals(e.getCellData().getColName())) {
                int rowIndex = data.getRowIndex();
                for (int i = 0; i < indices.length; i++) {
                    if (indices[i] == rowIndex) {
                        xValues[i] = data.getValue();
                    }
                }
            } else if (rangeLabel.equals(e.getCellData().getColName())) {
                int rowIndex = data.getRowIndex();
                for (int i = 0; i < indices.length; i++) {
                    if (indices[i] == rowIndex) {
                        yValues[i] = data.getValue();
                    }
                }
            }
            double[][] chartData = new double[2][];
            chartData[0] = xValues;
            chartData[1] = yValues;

            dataset.getSeriesKey(0);
            Comparable seriesKey = dataset.getSeriesKey(0);

            dataset.removeSeries(seriesKey);
            dataset.addSeries(seriesKey, chartData);
        }
    }
}