Example usage for org.jfree.data.time TimeSeries getDataItem

List of usage examples for org.jfree.data.time TimeSeries getDataItem

Introduction

In this page you can find the example usage for org.jfree.data.time TimeSeries getDataItem.

Prototype

public TimeSeriesDataItem getDataItem(RegularTimePeriod period) 

Source Link

Document

Returns the data item for a specific period.

Usage

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;
}