Example usage for org.jfree.data.xy XYSeries addOrUpdate

List of usage examples for org.jfree.data.xy XYSeries addOrUpdate

Introduction

In this page you can find the example usage for org.jfree.data.xy XYSeries addOrUpdate.

Prototype

public XYDataItem addOrUpdate(Number x, Number y) 

Source Link

Document

Adds or updates an item in the series and sends a SeriesChangeEvent to all registered listeners.

Usage

From source file:com.googlecode.psiprobe.beans.stats.providers.AbstractSeriesProvider.java

protected XYSeries toSeries(String legend, List stats) {
    XYSeries xySeries = new XYSeries(legend, true, false);
    synchronized (stats) {
        for (int i = 0; i < stats.size(); i++) {
            XYDataItem item = (XYDataItem) stats.get(i);
            xySeries.addOrUpdate(item.getX(), item.getY());
        }/*from   ww  w.j  a  v  a  2 s .  c o  m*/
    }
    return xySeries;
}

From source file:TradeMonitorGui.java

private void startGui() {
    XYSeriesCollection dataset = new XYSeriesCollection();
    createChartFrame(dataset);//from ww w.  j ava2s .c  om
    EntryAddedUpdatedListener<String, KeyedWindowResult<String, Double>> listener = (key, value) -> {
        if (!TICKERS.contains(key)) {
            return;
        }
        Long ts = value.end();
        double val = value.result() / 100.0;
        int idx = dataset.getSeriesIndex(key);
        XYSeries series;
        if (idx == -1) {
            series = new XYSeries(key, true, false);
            dataset.addSeries(series);
        } else {
            series = dataset.getSeries(idx);
        }
        series.addOrUpdate((long) ts, val);
    };
    this.listenerId = avgPrices.addEntryListener(listener, true);
}

From source file:wef.articulab.view.ui.BNXYPlot.java

public IntervalXYDataset refreshDataset() {
    if (behaviors != null) {
        int sizeSeries = series.length - 1;

        //keep number of samples no bigger than maxNumSamples
        if (behaviors[0].size() > maxNumSamples) {
            for (int i = 0; i < behaviors.length; i++) {
                behaviors[i].remove(0);/* ww  w  . j  a  v a  2 s  . c  om*/
            }
            thresholds.remove(0);
            activations.remove(0);
            offset++;
        }

        //Activation thresholds
        XYSeries ts = dataset.getSeries(series[sizeSeries]);
        ts.clear();
        for (int j = 0; j < thresholds.size(); j++) {
            ts.addOrUpdate(j + offset, thresholds.get(j).doubleValue());
        }
        target.setStartValue(minThreshold);
        target.setEndValue(maxThreshold);

        //behaviors
        for (int i = 0; i < sizeSeries; i++) {
            int size = behaviors[i].size();
            ts = dataset.getSeries(series[i]);
            ts.clear();
            for (int j = 0; j < size; j++) {
                ts.add(j + offset, behaviors[i].get(j).doubleValue());
            }
        }

        //who is activated?
        for (int x = 0; x < activations.size(); x++) {
            String name = (String) activations.get(x)[0];
            double y = (Double) activations.get(x)[1];
            if (name != null && !name.isEmpty()) {
                XYTextAnnotation annotation = new XYTextAnnotation(name, (x + offset), y);
                annotation.setFont(new Font("SansSerif", Font.ITALIC, 11));
                chart.getXYPlot().addAnnotation(annotation);
            }
        }
    }
    return dataset;
}

From source file:wef.articulab.view.ui.CombinedBNXYPlot.java

public IntervalXYDataset refreshDataset(ChartContainer chartContainer) {
    if (chartContainer.behaviors != null) {
        double max = 0;
        int sizeSeries = chartContainer.series.length - 1;

        //keep number of samples no bigger than maxNumSamples
        if (chartContainer.behaviors[0].size() > maxNumSamples) {
            for (int i = 0; i < sizeSeries; i++) {
                chartContainer.behaviors[i].remove(0);
            }//from w  w w.ja v  a2  s .c  o  m
            chartContainer.thresholds.remove(0);
            chartContainer.activations.remove(0);
            chartContainer.offset++;
        }

        //Activation thresholds
        XYSeries ts = chartContainer.dataset.getSeries(chartContainer.series[sizeSeries]);
        ts.clear();
        for (int j = 0; j < chartContainer.thresholds.size(); j++) {
            ts.addOrUpdate(j + chartContainer.offset, chartContainer.thresholds.get(j).doubleValue());
        }
        chartContainer.target.setStartValue(chartContainer.minThreshold);
        chartContainer.target.setEndValue(chartContainer.maxThreshold);

        //behaviors
        for (int i = 0; i < sizeSeries; i++) {
            int size = chartContainer.behaviors[i].size();
            ts = chartContainer.dataset.getSeries(chartContainer.series[i]);
            ts.clear();
            for (int j = 0; j < size; j++) {
                double behActivation = chartContainer.behaviors[i].get(j);
                if (behActivation > max) {
                    max = behActivation;
                }
                ts.add(j + chartContainer.offset, behActivation);
            }
        }

        //who is activated?
        for (int x = 0; x < chartContainer.activations.size(); x++) {
            String name = (String) chartContainer.activations.get(x)[0];
            double y = (Double) chartContainer.activations.get(x)[1];
            if (name != null && !name.isEmpty()) {
                XYTextAnnotation annotation = new XYTextAnnotation(name, (x + chartContainer.offset), y);
                annotation.setFont(new Font("SansSerif", Font.ITALIC, 11));
                chartContainer.plot.addAnnotation(annotation);
            }
        }

        // container range
        chartContainer.plot.getDomainAxis().setRange(chartContainer.offset,
                chartContainer.offset + maxNumSamples - 1);
        chartContainer.plot.getRangeAxis().setRange(0, max + 5);
        chartContainer.chart.fireChartChanged();
    }
    return chartContainer.dataset;
}

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

/**
 * A test for a bug reported in the forum:
 * /*from  www  .ja  v  a  2s  .c  o  m*/
 * http://www.jfree.org/forum/viewtopic.php?f=3&t=116601
 */
@Test
public void testGetMaxY2() {
    XYSeries series = new XYSeries(1, true, false);
    series.addOrUpdate(1, 20);
    series.addOrUpdate(2, 30);
    series.addOrUpdate(3, 40);
    assertEquals(40.0, series.getMaxY(), EPSILON);
    series.addOrUpdate(2, 22);
    assertEquals(40.0, series.getMaxY(), EPSILON);
}

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

/**
 * Another test for the addOrUpdate() method.
 *///from   w ww . j a  va2 s . c  om
@Test
public void testBug1955483() {
    XYSeries series = new XYSeries("Series", true, true);
    series.addOrUpdate(1.0, 1.0);
    series.addOrUpdate(1.0, 2.0);
    assertEquals(new Double(1.0), series.getY(0));
    assertEquals(new Double(2.0), series.getY(1));
    assertEquals(2, series.getItemCount());
}

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

/**
 * Another test for the addOrUpdate() method.
 *///from  ww  w . j a v  a 2 s.  c  o  m
@Test
public void testAddOrUpdate3() {
    XYSeries series = new XYSeries("Series", false, true);
    series.addOrUpdate(1.0, 1.0);
    series.addOrUpdate(1.0, 2.0);
    series.addOrUpdate(1.0, 3.0);
    assertEquals(new Double(1.0), series.getY(0));
    assertEquals(new Double(2.0), series.getY(1));
    assertEquals(new Double(3.0), series.getY(2));
    assertEquals(3, series.getItemCount());
}

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

/**
 * Some checks for the addOrUpdate() method.
 *//*from ww w. j  av  a2s  .  c o m*/
@Test
public void testAddOrUpdate() {
    XYSeries series = new XYSeries("S1", true, false);
    XYDataItem old = series.addOrUpdate(new Long(1), new Long(2));
    assertTrue(old == null);
    assertEquals(1, series.getItemCount());
    assertEquals(new Long(2), series.getY(0));

    old = series.addOrUpdate(new Long(2), new Long(3));
    assertTrue(old == null);
    assertEquals(2, series.getItemCount());
    assertEquals(new Long(3), series.getY(1));

    old = series.addOrUpdate(new Long(1), new Long(99));
    assertEquals(new XYDataItem(new Long(1), new Long(2)), old);
    assertEquals(2, series.getItemCount());
    assertEquals(new Long(99), series.getY(0));
    assertEquals(new Long(3), series.getY(1));
}

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

/**
 * Some checks for the addOrUpdate() method for an UNSORTED series.
 *///  w w w .  ja va 2  s .c om
@Test
public void testAddOrUpdate2() {
    XYSeries series = new XYSeries("Series", false, false);
    series.add(5.0, 5.5);
    series.add(6.0, 6.6);
    series.add(3.0, 3.3);
    series.add(4.0, 4.4);
    series.add(2.0, 2.2);
    series.add(1.0, 1.1);
    series.addOrUpdate(new Double(3.0), new Double(33.3));
    series.addOrUpdate(new Double(2.0), new Double(22.2));
    assertEquals(33.3, series.getY(2).doubleValue(), EPSILON);
    assertEquals(22.2, series.getY(4).doubleValue(), EPSILON);
}

From source file:de.fub.maps.gpx.analysis.ui.GpxTrkSegAnalysizerTopComponent.java

private void updateCharts() {
    // get chat data sets
    XYSeries velocityDataset = velocityChart.getDataset();
    velocityDataset.clear();/*from   ww  w.j a va  2  s  .com*/
    XYSeries accelerationDataset = accelerationChart.getDataset();
    accelerationDataset.clear();
    XYSeries headingDataset = headingChart.getDataset();
    headingDataset.clear();

    if (statistic != null) {
        // get track
        List<Waypoint> trackSegment = statistic.getTrackSegment();

        Waypoint secondLastWayPoint = null;
        Waypoint lastWaypoint = null;
        double totalDistance = 0;
        Double lastVelocity = null;
        for (Waypoint waypoint : trackSegment) {

            if (lastWaypoint != null && lastWaypoint.getTimestamp() != null && waypoint.getTimestamp() != null
                    && Math.abs(
                            lastWaypoint.getTimestamp().getTime() - waypoint.getTimestamp().getTime()) > 0) {
                double velocity = 0;
                double acceleration = 0;
                double distance = GPSCalc.getDistVincentyFast(lastWaypoint.getLat(), lastWaypoint.getLon(),
                        waypoint.getLat(), waypoint.getLon());
                double timeDiff = (waypoint.getTimestamp().getTime() - lastWaypoint.getTimestamp().getTime())
                        / 1000d;

                if (timeDiff > 0) {
                    velocity = (distance / timeDiff);

                    totalDistance += distance;

                    velocityDataset.addOrUpdate(totalDistance, velocity * 3.6);
                    if (lastVelocity != null) {
                        acceleration = (velocity - lastVelocity) / timeDiff;
                        accelerationDataset.addOrUpdate(totalDistance, acceleration);
                    } else {
                        accelerationDataset.addOrUpdate(totalDistance, 0);
                    }
                }

                lastVelocity = velocity;

                if (secondLastWayPoint != null) {
                    double heading = GPSCalc.computeHeading(secondLastWayPoint, lastWaypoint, waypoint);
                    headingDataset.addOrUpdate(totalDistance, heading);
                }

            }
            secondLastWayPoint = lastWaypoint;
            lastWaypoint = waypoint;
        }
    }
}