List of usage examples for org.jfree.data.xy XYSeries addOrUpdate
public XYDataItem addOrUpdate(Number x, Number y)
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; } } }