Example usage for org.jfree.data.time TimeSeriesDataItem TimeSeriesDataItem

List of usage examples for org.jfree.data.time TimeSeriesDataItem TimeSeriesDataItem

Introduction

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

Prototype

public TimeSeriesDataItem(RegularTimePeriod period, double value) 

Source Link

Document

Constructs a new data item that associates a value with a time period.

Usage

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

/**
 * Test that an instance is equal to itself.
 *
 * SourceForge Bug ID: 558850./* w  ww .j  a v  a 2s . com*/
 */
@Test
public void testEqualsSelf() {
    TimeSeriesDataItem item = new TimeSeriesDataItem(new Day(23, 9, 2001), 99.7);
    assertTrue(item.equals(item));
}

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

/**
 * Test the equals() method./*from w  w w  .j av a2  s  . co  m*/
 */
@Test
public void testEquals() {
    TimeSeriesDataItem item1 = new TimeSeriesDataItem(new Day(23, 9, 2001), 99.7);
    TimeSeriesDataItem item2 = new TimeSeriesDataItem(new Day(23, 9, 2001), 99.7);
    assertTrue(item1.equals(item2));
    assertTrue(item2.equals(item1));

    item1.setValue(new Integer(5));
    assertFalse(item1.equals(item2));
    item2.setValue(new Integer(5));
    assertTrue(item1.equals(item2));
}

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

/**
 * Serialize an instance, restore it, and check for equality.
 *//*from  w ww .jav a  2 s . c o  m*/
@Test
public void testSerialization() {
    TimeSeriesDataItem item1 = new TimeSeriesDataItem(new Day(23, 9, 2001), 99.7);
    TimeSeriesDataItem item2 = (TimeSeriesDataItem) TestUtilities.serialised(item1);
    assertEquals(item1, item2);
}

From source file:org.jstockchart.time.SegmentedTimeSeries.java

/**
 * Adds a <code>TimeSeriesDataItem</code> instance to the series.
 * /*from  w  ww.ja va2 s  .  co m*/
 * @param item
 *            the <code>TimeSeriesDataItem</code> instance.
 */
public void addItem(TimeSeriesDataItem item) {
    if (lastItem != null) {
        long lastStart = lastItem.getPeriod().getFirstMillisecond();
        long thisStart = item.getPeriod().getFirstMillisecond();
        long thisEnd = item.getPeriod().getLastMillisecond();
        int diff = 0;
        if (step > 0) {
            diff = (int) ((thisStart - lastStart) / (thisEnd - thisStart) - 1) / step;
        }
        RegularTimePeriod bufPeriod = lastItem.getPeriod().next();
        Number bufValue = lastItem.getValue();
        for (int i = 0; i < diff; i++) {
            TimeSeriesDataItem bufItem = new TimeSeriesDataItem(bufPeriod, bufValue);
            if (timeline != null) {
                if (timeline.containsDomainValue(bufPeriod.getLastMillisecond())) {
                    timeseries.addOrUpdate(bufItem);
                    size++;
                }
            } else {
                timeseries.add(bufItem);
                size++;
            }
            bufPeriod = bufItem.getPeriod().next();
        }
    }
    timeseries.addOrUpdate(item);
    //timeseries.add(item);
    size++;
    lastItem = item;
}

From source file:org.activequant.util.charting.Chart.java

/**
 * method to add a line series chart to the current chart. 
 * @param title/*  w  ww  .jav a 2 s. c  o  m*/
 * @param dateAndValues
 */
public void addLineSeriesChart(String title, List<Tuple<TimeStamp, Double>> dateAndValues) {

    // creating a new jfree chart time series object. 
    final TimeSeries ts = new TimeSeries(title, Millisecond.class);

    // iterate over the incoming value tuples and add them.  
    for (Tuple<TimeStamp, Double> tuple : dateAndValues) {
        TimeSeriesDataItem item = new TimeSeriesDataItem(new Millisecond(tuple.getObject1().getDate()),
                tuple.getObject2());
        ts.addOrUpdate(item.getPeriod(), item.getValue());
    }

    datasets.add(ts);

    // 
    final TimeSeriesCollection dataset = new TimeSeriesCollection(ts);

    // add it to the chart plot. 
    final XYPlot plot1 = chart.getXYPlot();

    // disable all shape rendering. 
    final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    renderer.setDrawOutlines(false);
    renderer.setUseOutlinePaint(false);
    renderer.setShapesVisible(false);
    // finally add the data set to chart 
    plot1.setDataset(datasets.size(), dataset);
    plot1.setRenderer(datasets.size(), renderer);
}

From source file:org.geoserver.monitor.web.ActivityChartBasePanel.java

BufferedDynamicImageResource queryAndRenderChart(Monitor monitor, Date[] range) {
    Query q = new Query();
    q.properties("startTime").between(range[0], range[1]);

    DataGatherer gatherer = new DataGatherer();
    monitor.query(q, gatherer);/*from  w  w  w. ja va2 s  . c om*/

    HashMap<RegularTimePeriod, Integer> data = gatherer.getData();

    Class timeUnitClass = getTimePeriod(range[0]).getClass();
    TimeSeries series = new TimeSeries("foo", timeUnitClass);
    for (Map.Entry<RegularTimePeriod, Integer> d : data.entrySet()) {
        series.add(new TimeSeriesDataItem(d.getKey(), d.getValue()));
    }

    TimeSeriesCollection dataset = new TimeSeriesCollection(series);

    final JFreeChart chart = createTimeSeriesChart(getChartTitle(range),
            "Time (" + timeUnitClass.getSimpleName() + ")", "Requests", dataset);

    BufferedDynamicImageResource resource = new BufferedDynamicImageResource();
    resource.setImage(chart.createBufferedImage(700, 500));
    return resource;
}

From source file:org.miloss.fgsms.services.rs.impl.reports.AvailabilityByService.java

@Override
public void generateReport(OutputStreamWriter data, List<String> urls, String path, List<String> files,
        TimeRange range, String currentuser, SecurityWrapper classification, WebServiceContext ctx)
        throws IOException {

    Connection con = Utility.getPerformanceDBConnection();
    try {//  w  w w.  j  av  a 2 s  .  c  o  m

        JFreeChart chart = null;

        data.append("<hr /><h2>").append(GetDisplayName()).append("</h2>");
        data.append(GetHtmlFormattedHelp() + "<br />");
        data.append(
                "<table class=\"table table-hover\"><tr><th>URI</th><th>Number of status changes</th><th>Percent Uptime</th><th>Percent Downtime</th></tr>");
        DecimalFormat percentFormat = new DecimalFormat("###.#####");
        TimeSeriesCollection col = new TimeSeriesCollection();
        for (int i = 0; i < urls.size(); i++) {
            //https://github.com/mil-oss/fgsms/issues/112
            if (!UserIdentityUtil.hasReadAccess(currentuser, "getReport", urls.get(i), classification, ctx)) {
                continue;
            }
            String url = Utility.encodeHTML(BaseReportGenerator.getPolicyDisplayName(urls.get(i)));
            TimeSeries s1 = new TimeSeries(url, org.jfree.data.time.Millisecond.class);
            try {
                data.append("<tr><td>").append(url).append("</td>");
                List<StatusRecordsExt> records = getStatusRecords(urls.get(i), range, con);
                //special case, no status records available
                if (records == null || records.isEmpty()) {
                    data.append("<td>-</td><td>-</td></tr>");
                    continue;
                }
                double uptime = getUptimePercentage(records, range);
                data.append("<td>").append(records.size() + "").append("</td><td>")
                        .append(percentFormat.format(uptime)).append("</td><td>")
                        .append(percentFormat.format(100 - uptime)).append("</td></tr>");
                TimeSeriesDataItem t = null;
                for (int k = 0; k < records.size(); k++) {
                    if (records.get(k).status) {
                        try {
                            t = new TimeSeriesDataItem(new Millisecond(records.get(k).gcal.getTime()), 1);
                            s1.addOrUpdate(t);
                        } catch (Exception ex) {
                            log.log(Level.WARN, null, ex);
                        }
                    } else {
                        try {
                            t = new TimeSeriesDataItem(new Millisecond(records.get(k).gcal.getTime()), 0);
                            s1.addOrUpdate(t);
                        } catch (Exception ex) {
                            log.log(Level.WARN, null, ex);
                        }
                    }
                    col.addSeries(s1);
                }

            } catch (Exception ex) {
                log.log(Level.ERROR, "Error opening or querying the database.", ex);
            }

        }
        chart = org.jfree.chart.ChartFactory.createTimeSeriesChart(GetDisplayName(), "Timestamp", "Status", col,
                true, false, false);

        data.append("</table>");
        try {
            ChartUtilities.saveChartAsPNG(new File(
                    path + getFilePathDelimitor() + "image_" + this.getClass().getSimpleName() + ".png"), chart,
                    1500, 800);
            data.append("<img src=\"image_").append(this.getClass().getSimpleName()).append(".png\">");
            files.add(path + getFilePathDelimitor() + "image_" + this.getClass().getSimpleName() + ".png");

        } catch (IOException ex) {
            log.log(Level.ERROR, "Error saving chart image for request", ex);
        }
    } catch (Exception ex) {
        log.log(Level.ERROR, null, ex);
    } finally {
        DBUtils.safeClose(con);
    }
}

From source file:org.jstockchart.dataset.TimeseriesDataset.java

/**
 * Adds a <code>TimeseriesItem</code> instance to the data set.
 * //from  www . j  a v  a2s  .com
 * @param item
 *            the <code>TimeseriesItem</code> instance.
 */
public void addDataItem(TimeseriesItem item) {
    RegularTimePeriod time = RegularTimePeriod.createInstance(timePeriodClass, item.getTime(), timeZone);
    priceTimeSeries.addItem(new TimeSeriesDataItem(time, item.getPrice()));
    volumeTimeSeries.addOrUpdate(new TimeSeriesDataItem(time, item.getVolume()));
    if (average != null) {
        average.setPriceVolume(item.getPrice(), item.getVolume());
        averageTimeSeries.addItem(new TimeSeriesDataItem(time, average.value));
    }

    if (maxPrice == null || maxPrice.doubleValue() < item.getPrice()) {
        maxPrice = new Double(item.getPrice());
    }
    if (minPrice == null || minPrice.doubleValue() > item.getPrice()) {
        minPrice = new Double(item.getPrice());
    }

    if (maxVolume == null || maxVolume.doubleValue() < item.getVolume()) {
        maxVolume = new Double(item.getVolume());
    }
    if (minVolume == null || minVolume.doubleValue() > item.getVolume()) {
        minVolume = new Double(item.getVolume());
    }
}

From source file:org.activequant.util.charting.Chart.java

/**
 * method to add a dot chart.//w w  w .  jav a  2 s. co  m
 * @param title
 * @param dateAndValues
 */
public void addDotSeriesChart(String title, List<Tuple<TimeStamp, Double>> dateAndValues) {

    if (chart != null) {
        //
        final TimeSeries ts = new TimeSeries(title, Millisecond.class);
        for (Tuple<TimeStamp, Double> tuple : dateAndValues) {
            //
            TimeSeriesDataItem item = new TimeSeriesDataItem(new Millisecond(tuple.getObject1().getDate()),
                    tuple.getObject2());
            ts.addOrUpdate(item.getPeriod(), item.getValue());
        }

        datasets.add(ts);
        final TimeSeriesCollection dataset = new TimeSeriesCollection(ts);

        final XYPlot plot1 = chart.getXYPlot();

        final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
        renderer.setShapesVisible(true);
        renderer.setLinesVisible(false);
        plot1.setDataset(datasets.size(), dataset);
        plot1.setRenderer(datasets.size(), renderer);
    }
}

From source file:se.six.jmeter.visualizer.statagg.StatAggVisualizer.java

private void addValue(TimeSeries ts, RegularTimePeriod period, double value) {
    TimeSeriesDataItem item = new TimeSeriesDataItem(period, value);
    addValue(ts, item);/*  w  ww.jav  a  2s .c o m*/
}