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

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

Introduction

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

Prototype

public Comparable getKey() 

Source Link

Document

Returns the key for the series.

Usage

From source file:com.dreikraft.axbo.timeseries.TimeSeriesUtil.java

/**
 * Create a moving average time series from a given source series.
 *
 * @param source the source timeseries/* w w w .  j ava 2s. c  o m*/
 * @param preLen number of timeperiods before current time period included in
 * moving average calculation
 * @param postLen number of timeperiods after current time period included in
 * moving average calculation
 * @return a moving average time series
 */
public static TimeSeries createMovingAverage(final TimeSeries source, final int preLen, final int postLen) {

    final int len = preLen + postLen + 1;
    final TimeSeries result = new TimeSeries(source.getKey());
    final RegularTimePeriod lastTimePeriod = source.getTimePeriod(source.getItemCount() - 1);

    // process all timeperiods including empty ones
    RegularTimePeriod t = source.getTimePeriod(0);
    while (!(t.getFirstMillisecond() > lastTimePeriod.getFirstMillisecond())) {

        // calculate the moving avg value for the current time period
        double value = getValue(source, t);
        RegularTimePeriod ti = t;
        for (int i = 0; i < preLen; i++) {
            ti = ti.previous();
            value += getValue(source, ti);
        }
        ti = t;
        for (int i = 0; i < postLen; i++) {
            ti = ti.next();
            value += getValue(source, ti);
        }

        // add the moving avg value to the included time periods
        result.addOrUpdate(t, value / len);
        t = t.next();
    }

    return result;
}

From source file:org.jfree.data.time.MovingAverage.java

/**
 * Creates a new {@link TimeSeriesCollection} containing a moving average
 * series for each series in the source collection.
 *
 * @param source  the source collection.
 * @param suffix  the suffix added to each source series name to create the
 *                corresponding moving average series name.
 * @param periodCount  the number of periods in the moving average
 *                     calculation./*w w  w. j a  va  2  s.  c  om*/
 * @param skip  the number of initial periods to skip.
 *
 * @return A collection of moving average time series.
 */
public static TimeSeriesCollection createMovingAverage(TimeSeriesCollection source, String suffix,
        int periodCount, int skip) {

    ParamChecks.nullNotPermitted(source, "source");
    if (periodCount < 1) {
        throw new IllegalArgumentException("periodCount must be greater " + "than or equal to 1.");
    }

    TimeSeriesCollection result = new TimeSeriesCollection();
    for (int i = 0; i < source.getSeriesCount(); i++) {
        TimeSeries sourceSeries = source.getSeries(i);
        TimeSeries maSeries = createMovingAverage(sourceSeries, sourceSeries.getKey() + suffix, periodCount,
                skip);
        result.addSeries(maSeries);
    }
    return result;

}

From source file:de.xirp.chart.ChartUtil.java

/**
 * Exports the given dataset as CSV./*from  www . jav  a  2 s  .  com*/
 * 
 * @param dataset
 *            The dataset to export.
 * @param robotName
 *            The robot name for which the dataset is exported.
 * @see org.jfree.data.time.TimeSeriesCollection
 */
private static void exportCSV(TimeSeriesCollection dataset, String robotName) {
    for (Object obj : dataset.getSeries()) {
        List<Observed> obs = new ArrayList<Observed>();
        TimeSeries ts = (TimeSeries) obj;
        String observedKey = (String) ts.getKey();
        for (Object obj2 : ts.getItems()) {
            TimeSeriesDataItem tsdi = (TimeSeriesDataItem) obj2;
            Observed o = new Observed();
            o.setObservedKey(observedKey);
            o.setTimestamp(tsdi.getPeriod().getStart().getTime());
            o.setValue(tsdi.getValue().doubleValue());
            obs.add(o);
        }
        exportCSV(obs, robotName);
    }
}

From source file:org.efs.openreports.engine.ChartReportEngine.java

private static XYDataset createTimeDataset(ChartValue[] values) {
    TimeSeries series = null;
    TimeSeriesCollection seriesCollection = new TimeSeriesCollection();

    for (int i = 0; i < values.length; i++) {
        TimeChartValue value = (TimeChartValue) values[i];

        if (series == null || !series.getKey().equals(value.getSeries())) {
            if (series != null) {
                seriesCollection.addSeries(series);
            }//from  w  w  w  .j  a  v  a  2  s .c o m

            series = new TimeSeries(value.getSeries(), Second.class);
        }

        series.add(new Second(value.getTime()), value.getValue());
    }

    seriesCollection.addSeries(series);

    return seriesCollection;
}

From source file:tools.descartes.bungee.chart.ChartGenerator.java

private static XYPlot createAllocationPlot(final TimeSeriesCollection dataset) {

    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setBaseShapesVisible(true);
    renderer.setBaseShapesFilled(false);
    final NumberAxis rangeAxis = new NumberAxis("Resource Amount");
    rangeAxis.setAutoRangeIncludesZero(true);
    //rangeAxis.setTickUnit(new NumberTickUnit(1));
    double lower = Math.min(1, dataset.getRangeBounds(false).getLowerBound()) - 0.2;
    double upper = Math.max(2, dataset.getRangeBounds(false).getUpperBound()) + 0.2;
    rangeAxis.setRange(lower, upper);/*from   ww w  . ja v  a  2s. com*/
    final XYPlot allocationPlot = new XYPlot(dataset, null, rangeAxis, renderer);
    allocationPlot.setSeriesRenderingOrder(SeriesRenderingOrder.REVERSE);

    for (int i = 0; i < dataset.getSeriesCount(); i++) {
        TimeSeries series = dataset.getSeries(i);
        //addEndSeriesItem(lastDate, series);
        String description = series.getKey().toString();
        renderer.setSeriesStroke(i, new BasicStroke(STROKE_WIDTH));
        if (description.equals(AllocationSeries.CATEGORY.DEMAND.toString())) {
            renderer.setSeriesShapesVisible(i, false);
            renderer.setSeriesPaint(i, Color.RED);
        } else if (description.equals(SupplySeries.TYPE.VM_SCHEDULED.toString())) {
            renderer.setSeriesPaint(i, VARIANT_C_COLOR);
        } else if (description.equals(SupplySeries.TYPE.VM_COMPLETED.toString())) {
            renderer.setSeriesPaint(i, VARIANT_B_COLOR);
        } else if (description.equals(SupplySeries.TYPE.LB_RULE_ADAPTION.toString())) {
            if (dataset.getSeriesCount() != 2) {
                renderer.setSeriesPaint(i, VARIANT_A_COLOR);
            } else {
                renderer.setSeriesPaint(i, Color.BLUE);
            }
        } else if (description.equals(SupplySeries.TYPE.MONITORED.toString())) {
            if (dataset.getSeriesCount() != 2) {
                renderer.setSeriesPaint(i, VARIANT_D_COLOR);
            } else {
                renderer.setSeriesPaint(i, Color.BLUE);
            }
        } else {
            renderer.setSeriesPaint(i, colorForConfig(description));
        }
    }

    return allocationPlot;
}

From source file:net.sf.jasperreports.charts.util.TimeSeriesChartHyperlinkProvider.java

@Override
public JRPrintHyperlink getEntityHyperlink(ChartEntity entity) {
    JRPrintHyperlink printHyperlink = null;
    if (hasHyperlinks() && entity instanceof XYItemEntity) {
        XYItemEntity itemEntity = (XYItemEntity) entity;
        TimeSeriesCollection dataset = (TimeSeriesCollection) itemEntity.getDataset();
        TimeSeries series = dataset.getSeries(itemEntity.getSeriesIndex());
        Map<RegularTimePeriod, JRPrintHyperlink> serieHyperlinks = itemHyperlinks.get(series.getKey());
        if (serieHyperlinks != null) {
            RegularTimePeriod timePeriod = series.getTimePeriod(itemEntity.getItem());
            printHyperlink = serieHyperlinks.get(timePeriod);
        }// w w  w . ja va 2 s  .  c om
    }
    return printHyperlink;
}

From source file:org.jmxtrans.embedded.samples.graphite.GraphiteDataInjector.java

public void exportMetrics(TimeSeries timeSeries) throws IOException {
    System.out.println("Export '" + timeSeries.getKey() + "' to " + graphiteHost + " with prefix '"
            + graphiteMetricPrefix + "'");
    Socket socket = new Socket(graphiteHost, graphitePort);
    OutputStream outputStream = socket.getOutputStream();

    if (generateDataPointsFile) {
        JFreeChart chart = ChartFactory.createXYLineChart("Purchase", "date", "Amount",
                new TimeSeriesCollection(timeSeries), PlotOrientation.VERTICAL, true, true, false);
        // chart.getXYPlot().setRenderer(new XYSplineRenderer(60));

        File file = new File("/tmp/" + timeSeries.getKey() + ".png");
        ChartUtilities.saveChartAsPNG(file, chart, 1200, 800);
        System.out.println("Exported " + file.getAbsolutePath());

        String pickleFileName = "/tmp/" + timeSeries.getKey().toString() + ".pickle";
        System.out.println("Generate " + pickleFileName);
        outputStream = new TeeOutputStream(outputStream, new FileOutputStream(pickleFileName));
    }/*from w  w w .  j  a v a2s.  c om*/

    PyList list = new PyList();

    for (int i = 0; i < timeSeries.getItemCount(); i++) {
        if (debug)
            System.out.println(new DateTime(timeSeries.getDataItem(i).getPeriod().getStart()) + "\t"
                    + timeSeries.getDataItem(i).getValue().intValue());
        String metricName = graphiteMetricPrefix + timeSeries.getKey().toString();
        int time = (int) TimeUnit.SECONDS.convert(timeSeries.getDataItem(i).getPeriod().getStart().getTime(),
                TimeUnit.MILLISECONDS);
        int value = timeSeries.getDataItem(i).getValue().intValue();

        list.add(new PyTuple(new PyString(metricName), new PyTuple(new PyInteger(time), new PyInteger(value))));

        if (list.size() >= batchSize) {
            System.out.print("-");
            rateLimiter.acquire(list.size());
            sendDataPoints(outputStream, list);
        }
    }

    // send last data points
    if (!list.isEmpty()) {
        rateLimiter.acquire(list.size());
        sendDataPoints(outputStream, list);
    }

    Flushables.flushQuietly(outputStream);
    Closeables.close(outputStream, true);
    try {
        socket.close();
    } catch (Exception e) {
        // swallow exception
        e.printStackTrace();
    }

    System.out.println();
    System.out.println("Exported " + timeSeries.getKey() + ": " + timeSeries.getItemCount() + " items");
}

From source file:pt.lsts.neptus.console.plugins.AirOSPeers.java

@Periodic
private void update() {
    if (System.currentTimeMillis() - lastUpdateMillis < seconds * 1000)
        return;/*from  www . j  a va2s  . c om*/
    lastUpdateMillis = System.currentTimeMillis();

    Future<String> result = SSHUtil.exec(host, port, credentials.getUsername(), credentials.getPassword(),
            "wstalist");
    try {
        String json = result.get(5, TimeUnit.SECONDS);

        if (logToDisk) {
            DevDataText txt = new DevDataText();
            txt.setValue(json);
            txt.setSrcEnt(ImcMsgManager.getManager().getEntityId());
            txt.setSrc(ImcMsgManager.getManager().getLocalId().intValue());
            LsfMessageLogger.log(txt);
        }

        HashSet<String> series = new HashSet<>();
        for (Object o : tsc.getSeries()) {
            TimeSeries tseries = (TimeSeries) o;
            series.add("" + tseries.getKey());
        }

        for (Station station : new StationList(json).stations) {
            series.remove(nameOf(station));
            process(station);
        }

        for (String name : series) {
            TimeSeries ts = tsc.getSeries(name);
            if (ts != null)
                ts.addOrUpdate(new Millisecond(new Date(System.currentTimeMillis())), null);
        }
    } catch (TimeoutException timeout) {
        NeptusLog.pub().error("Timeout while trying to connect to " + host + ":" + port);
    } catch (Exception e) {
        e.printStackTrace();
        NeptusLog.pub().error(e);
    }
}

From source file:org.jmxtrans.samples.graphite.GraphiteDataInjector.java

public void exportMetrics(TimeSeries timeSeries) throws IOException {
    System.out.println("Export " + timeSeries.getKey());
    Socket socket = new Socket(graphiteHost, graphitePort);
    OutputStream outputStream = socket.getOutputStream();

    if (generateDataPointsFile) {
        JFreeChart chart = ChartFactory.createXYLineChart("Purchase", "date", "Amount",
                new TimeSeriesCollection(timeSeries), PlotOrientation.VERTICAL, true, true, false);
        // chart.getXYPlot().setRenderer(new XYSplineRenderer(60));

        File file = new File("/tmp/" + timeSeries.getKey() + ".png");
        ChartUtilities.saveChartAsPNG(file, chart, 1200, 800);
        System.out.println("Exported " + file.getAbsolutePath());

        String pickleFileName = "/tmp/" + timeSeries.getKey().toString() + ".pickle";
        System.out.println("Generate " + pickleFileName);
        outputStream = new TeeOutputStream(outputStream, new FileOutputStream(pickleFileName));
    }//from  w  ww  .j  a v  a  2s .  co m

    PyList list = new PyList();

    for (int i = 0; i < timeSeries.getItemCount(); i++) {
        if (debug)
            System.out.println(new DateTime(timeSeries.getDataItem(i).getPeriod().getStart()) + "\t"
                    + timeSeries.getDataItem(i).getValue().intValue());
        String metricName = graphiteMetricPrefix + timeSeries.getKey().toString();
        int time = (int) TimeUnit.SECONDS.convert(timeSeries.getDataItem(i).getPeriod().getStart().getTime(),
                TimeUnit.MILLISECONDS);
        int value = timeSeries.getDataItem(i).getValue().intValue();

        list.add(new PyTuple(new PyString(metricName), new PyTuple(new PyInteger(time), new PyInteger(value))));

        if (list.size() >= batchSize) {
            System.out.print("-");
            rateLimiter.acquire(list.size());
            sendDataPoints(outputStream, list);
        }
    }

    // send last data points
    if (!list.isEmpty()) {
        rateLimiter.acquire(list.size());
        sendDataPoints(outputStream, list);
    }

    Flushables.flushQuietly(outputStream);
    Closeables.close(outputStream, true);
    Closeables.close(socket, true);

    System.out.println();
    System.out.println("Exported " + timeSeries.getKey() + ": " + timeSeries.getItemCount() + " items");
}

From source file:edu.mit.fss.examples.member.gui.CommSubsystemPanel.java

@Override
public void timeAdvanced(final SimulationTimeEvent event) {
    // make a copy of state updates to prevent late-running threads from
    // posting out-of-date information
    final Map<Transmitter, Boolean> canReceiveMap = new HashMap<Transmitter, Boolean>();

    // synchronize on map for thread safety
    synchronized (connectSeriesMap) {
        for (Transmitter transmitter : connectSeriesMap.keySet()) {
            canReceiveMap.put(transmitter, subsystem.getReceiver().canReceiveFrom(transmitter));
        }/*from www .ja  v a2 s.c o m*/
    }

    // update in event dispatch thread for thread safety
    try {
        SwingUtilities.invokeAndWait(new Runnable() {
            public void run() {
                for (Transmitter transmitter : canReceiveMap.keySet()) {
                    TimeSeries series = connectSeriesMap.get(transmitter);
                    logger.trace("Adding/updating series " + series.getKey() + ".");
                    series.addOrUpdate(RegularTimePeriod.createInstance(Minute.class, new Date(event.getTime()),
                            TimeZone.getTimeZone("UTC")), canReceiveMap.get(transmitter) ? 1 : 0);
                }
            }
        });
    } catch (InvocationTargetException | InterruptedException e) {
        logger.error(e);
    }
}