List of usage examples for org.jfree.data.time TimeSeries getDataItem
public TimeSeriesDataItem getDataItem(RegularTimePeriod period)
From source file:MWC.GUI.JFreeChart.ColourStandardXYItemRenderer.java
@Override public Paint getItemPaint(final int row, final int column) { Color theColor = null;/*from w w w. j av a2 s . c om*/ final XYDataset data = _myPlot.getDataset(); Paint res = null; if (data instanceof TimeSeriesCollection) { final TimeSeriesCollection tsc = (TimeSeriesCollection) data; // get the data series final TimeSeries bts = tsc.getSeries(row); final TimeSeriesDataItem tsdp = bts.getDataItem(column); if (tsdp instanceof AttractiveDataItem) { final AttractiveDataItem cdi = (AttractiveDataItem) tsdp; theColor = cdi.getColor(); } } if (theColor != null) res = theColor; else res = super.getItemPaint(row, column); return res; }
From source file:MWC.GUI.JFreeChart.ColourStandardXYItemRenderer.java
/** * accessor method to find out if we should connect this point to the previous * one//from ww w . j a va2 s . c o m * * @param plot * the plot (can be used to obtain standard color information etc). * @param series * the series index. * @param item * the item index. * @return yes/no */ protected boolean connectToPrevious(final XYPlot plot, final int series, final int item) { final XYDataset data = plot.getDataset(); boolean res = true; if (data instanceof TimeSeriesCollection) { final TimeSeriesCollection tsc = (TimeSeriesCollection) data; // get the data series TimeSeries bts; try { bts = tsc.getSeries(series); TimeSeriesDataItem tsdp; tsdp = bts.getDataItem(item); if (tsdp instanceof AttractiveDataItem) { final AttractiveDataItem cdi = (AttractiveDataItem) tsdp; res = cdi.connectToPrevious(); } } catch (final IndexOutOfBoundsException ee) { // ee.printStackTrace(); res = false; } catch (final IllegalArgumentException ee) { // ee.printStackTrace(); res = false; } } return res; }
From source file:edu.dlnu.liuwenpeng.Time.TimeSeriesCollection.java
/** * Returns the x-value (as a double primitive) for an item within a series. * /* w ww.j a va 2 s. c o m*/ * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The x-value. */ public double getXValue(int series, int item) { TimeSeries s = (TimeSeries) this.data.get(series); TimeSeriesDataItem i = s.getDataItem(item); RegularTimePeriod period = i.getPeriod(); return getX(period); }
From source file:edu.dlnu.liuwenpeng.Time.TimeSeriesCollection.java
/** * Returns the starting X value for the specified series and item. * //from ww w.j a v a 2 s .com * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The value. */ public synchronized Number getStartX(int series, int item) { TimeSeries ts = (TimeSeries) this.data.get(series); TimeSeriesDataItem dp = ts.getDataItem(item); return new Long(dp.getPeriod().getFirstMillisecond(this.workingCalendar)); }
From source file:edu.dlnu.liuwenpeng.Time.TimeSeriesCollection.java
/** * Returns the ending X value for the specified series and item. * /*w ww . ja v a 2s .co m*/ * @param series The series (zero-based index). * @param item The item (zero-based index). * * @return The value. */ public synchronized Number getEndX(int series, int item) { TimeSeries ts = (TimeSeries) this.data.get(series); TimeSeriesDataItem dp = ts.getDataItem(item); return new Long(dp.getPeriod().getLastMillisecond(this.workingCalendar)); }
From source file:edu.dlnu.liuwenpeng.Time.TimeSeriesCollection.java
/** * Returns the y-value for the specified series and item. * /*ww w . j av a 2 s. c om*/ * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The value (possibly <code>null</code>). */ public Number getY(int series, int item) { TimeSeries ts = (TimeSeries) this.data.get(series); TimeSeriesDataItem dp = ts.getDataItem(item); return dp.getValue(); }
From source file:edu.dlnu.liuwenpeng.Time.TimeSeriesCollection.java
/** * Returns the x-value for the specified series and item. * /*from w ww . j a va 2s.c o m*/ * @param series the series (zero-based index). * @param item the item (zero-based index). * * @return The value. */ public Number getX(int series, int item) { TimeSeries ts = (TimeSeries) this.data.get(series); TimeSeriesDataItem dp = ts.getDataItem(item); RegularTimePeriod period = dp.getPeriod(); return new Long(getX(period)); }
From source file:edu.fullerton.viewerplugin.TsPlot.java
private TimeSeries LinFit(TimeSeries ts) { TimeSeries ret = new TimeSeries("lin fit", Millisecond.class); SimpleTimeZone utctz = new SimpleTimeZone(0, "UTC"); int n = ts.getItemCount(); double[] x = new double[n]; double[] y = new double[n]; TimeSeriesDataItem it;/*from w ww. jav a2s. c o m*/ for (int i = 0; i < n; i++) { it = ts.getDataItem(i); x[i] = it.getPeriod().getFirstMillisecond() + 0.; y[i] = it.getValue().doubleValue(); } LinearRegression lr = new LinearRegression(x, y); double b = lr.getIntercept(); double m = lr.getSlope(); double fit, t; for (int i = 0; i < n; i++) { it = ts.getDataItem(i); t = it.getPeriod().getFirstMillisecond() + 0.; fit = m * t + b; ret.addOrUpdate(it.getPeriod(), fit); } return ret; }
From source file:org.jmxtrans.samples.graphite.GraphiteDataInjector.java
public void generateLoad() throws Exception { System.out.println("Inject data on Graphite server " + this.graphiteHost); TimeSeries timeSeries = new TimeSeries("shopping-cart.raw"); DateTime now = new DateTime(); DateTime end = now.plusDays(1);//from w ww . j a v a 2s.c o m DateTime date = now.minusDays(15); DateTime twoDaysAfterBegin = date.plusDays(2); int integratedValue = 0; MathContext mathContext = new MathContext(1, RoundingMode.CEILING); int randomFactor = 0; while (date.isBefore(end)) { if (timeSeries.getItemCount() % 120 == 0) { randomFactor = 10 + random.nextInt(2); } int weekGrowthFactor = 6 - (now.getWeekOfWeekyear() - date.getWeekOfWeekyear()); int value = new BigDecimal(randomFactor) // random factor .multiply(new BigDecimal(10)) // go to cents of USD .multiply(new BigDecimal(weekGrowthFactor)) .multiply(new BigDecimal(hourlyDistribution[date.getHourOfDay()])) .multiply(new BigDecimal(weeklyDistribution[date.getDayOfWeek()])) .divide(new BigDecimal(20), mathContext).intValue(); // split hourly value in minutes integratedValue += value; for (int i1 = 0; i1 < 3; i1++) { timeSeries.add(new Minute(date.toDate()), integratedValue); date = date.plusMinutes(1); } } TimeSeries ordersPriceInCentsTimeSeries = MovingAverage.createMovingAverage(timeSeries, "shopping-cart.OrdersPriceInCents", 60 * 7, 0); TimeSeries ordersPriceInCentsSrv1TimeSeries = new TimeSeries("srv1.shopping-cart.OrdersPriceInCents"); TimeSeries ordersPriceInCentsSrv2TimeSeries = new TimeSeries("srv2.shopping-cart.OrdersPriceInCents"); int resetValue2ToZeroOffset = 0; // reset value 2 after 3 days of metrics for (int i = 0; i < ordersPriceInCentsTimeSeries.getItemCount(); i++) { TimeSeriesDataItem dataItem = ordersPriceInCentsTimeSeries.getDataItem(i); int value = dataItem.getValue().intValue(); // value1 is 5% higher to value2 due to a 'weirdness' in the load balancing int value1 = Math.min((int) (value * 1.05 / 2), value); { // simulate srv2 restart DateTime currentDate = new DateTime(dataItem.getPeriod().getStart()); boolean shouldResetValue2 = resetValue2ToZeroOffset == 0 && currentDate.getDayOfYear() == twoDaysAfterBegin.getDayOfYear(); if (shouldResetValue2) { resetValue2ToZeroOffset = value - value1; System.out.println("reset value2 of " + resetValue2ToZeroOffset + " at " + currentDate); } } int value2 = value - value1 - resetValue2ToZeroOffset; // System.out.println("value=" + value + ", value1=" + value1 + ", value2=" + value2); ordersPriceInCentsSrv1TimeSeries.add(dataItem.getPeriod(), value1); ordersPriceInCentsSrv2TimeSeries.add(dataItem.getPeriod(), value2); } TimeSeries orderItemsCountTimeSeries = new TimeSeries("shopping-cart.OrderItemsCount"); TimeSeries orderItemsCountSrv1TimeSeries = new TimeSeries("srv1.shopping-cart.OrderItemsCount"); TimeSeries orderItemsCountSrv2TimeSeries = new TimeSeries("srv2.shopping-cart.OrderItemsCount"); for (int i = 0; i < ordersPriceInCentsTimeSeries.getItemCount(); i++) { RegularTimePeriod period = ordersPriceInCentsTimeSeries.getDataItem(i).getPeriod(); int ordersPriceInCents1 = ordersPriceInCentsSrv1TimeSeries.getDataItem(i).getValue().intValue(); int ordersPriceInCents2 = ordersPriceInCentsSrv2TimeSeries.getDataItem(i).getValue().intValue(); int value1 = ordersPriceInCents1 / 600; int value2 = ordersPriceInCents2 / 600; orderItemsCountTimeSeries.add(period, value1 + value2); orderItemsCountSrv1TimeSeries.add(period, value1); orderItemsCountSrv2TimeSeries.add(period, value2); } exportMetrics(ordersPriceInCentsTimeSeries, ordersPriceInCentsSrv1TimeSeries, ordersPriceInCentsSrv2TimeSeries, ordersPriceInCentsTimeSeries, orderItemsCountTimeSeries, orderItemsCountSrv1TimeSeries, orderItemsCountSrv2TimeSeries); TimeSeries activeSrv1Visitors = new TimeSeries("srv1.visitors.currentActive"); TimeSeries activeSrv2Visitors = new TimeSeries("srv1.visitors.currentActive"); }
From source file:org.pentaho.plugin.jfreereport.reportcharts.XYChartExpression.java
protected ExtTimeTableXYDataset convertToTable(final XYDataset xyDataset) { final TimeSeriesCollection timeSeriesCollection = (TimeSeriesCollection) xyDataset; final ExtTimeTableXYDataset tableXYDataset = new ExtTimeTableXYDataset(); final int count = timeSeriesCollection.getSeriesCount(); for (int i = 0; i < count; i++) { final Comparable key = timeSeriesCollection.getSeriesKey(i); final TimeSeries timeSeries = timeSeriesCollection.getSeries(i); final int itemCount = timeSeries.getItemCount(); for (int ic = 0; ic < itemCount; ic++) { final TimeSeriesDataItem seriesDataItem = timeSeries.getDataItem(ic); tableXYDataset.add(seriesDataItem.getPeriod(), seriesDataItem.getValue(), key, false); }/* w ww . j a va 2 s. c om*/ } return tableXYDataset; }