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

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

Introduction

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

Prototype

public TimeSeriesCollection() 

Source Link

Document

Constructs an empty dataset, tied to the default timezone.

Usage

From source file:com.bdb.weather.display.summary.WindSummary.java

/**
 * Load the data into the plot.//from   w w  w  . j a  v a  2  s. com
 * 
 * @param records The summary records
 */
public void loadData(List<SummaryRecord> records) {
    dataTable.setItems(FXCollections.observableList(records));
    TimeSeriesCollection sustainedDataset = new TimeSeriesCollection();
    TimeSeries avgSpeedSeries = new TimeSeries("Average Sustained");
    TimeSeries maxSpeedSeries = new TimeSeries("Maximum Sustained");
    TimeSeriesCollection gustDataset = new TimeSeriesCollection();
    TimeSeries windGustSeries = new TimeSeries("Maximum Gust");

    for (int i = 0; i < records.size(); i++) {
        RegularTimePeriod p = RegularTimePeriod.createInstance(interval.getFreeChartClass(),
                TimeUtils.localDateTimeToDate(records.get(i).getDate().atStartOfDay()), TimeZone.getDefault());
        maxSpeedSeries.add(p, records.get(i).getMaxWindSpeed().get());
        avgSpeedSeries.add(p, records.get(i).getAvgWindSpeed().get());
        Speed gust = records.get(i).getMaxWindGust();

        if (gust != null) {
            windGustSeries.add(p, gust.get());
        }
    }

    sustainedDataset.addSeries(avgSpeedSeries);
    sustainedDataset.addSeries(maxSpeedSeries);
    gustDataset.addSeries(windGustSeries);

    plot.setDataset(SUSTAINED_WIND_SERIES, sustainedDataset);
    plot.setDataset(GUST_SERIES, gustDataset);
}

From source file:org.jfree.chart.demo.selection.SelectionDemo1.java

/**
 * Creates a dataset, consisting of two series of monthly data.
 * /*from  w  w w .j  av a2 s.  c o m*/
 * @return The dataset.
 */
private static TimeSeriesCollection createDataset() {

    TimeSeries s1 = new TimeSeries("S1");
    s1.add(new Month(1, 2009), 181.8);
    s1.add(new Month(2, 2009), 167.3);
    s1.add(new Month(3, 2009), 153.8);
    s1.add(new Month(4, 2009), 167.6);
    s1.add(new Month(5, 2009), 158.8);
    s1.add(new Month(6, 2009), 148.3);
    s1.add(new Month(7, 2009), 153.9);
    s1.add(new Month(8, 2009), 142.7);
    s1.add(new Month(9, 2009), 123.2);
    s1.add(new Month(10, 2009), 131.8);
    s1.add(new Month(11, 2009), 139.6);
    s1.add(new Month(12, 2009), 142.9);
    s1.add(new Month(1, 2010), 138.7);
    s1.add(new Month(2, 2010), 137.3);
    s1.add(new Month(3, 2010), 143.9);
    s1.add(new Month(4, 2010), 139.8);
    s1.add(new Month(5, 2010), 137.0);
    s1.add(new Month(6, 2010), 132.8);

    TimeSeries s2 = new TimeSeries("S2");
    s2.add(new Month(1, 2009), 129.6);
    s2.add(new Month(2, 2009), 123.2);
    s2.add(new Month(3, 2009), 117.2);
    s2.add(new Month(4, 2009), 124.1);
    s2.add(new Month(5, 2009), 122.6);
    s2.add(new Month(6, 2009), 119.2);
    s2.add(new Month(7, 2009), 116.5);
    s2.add(new Month(8, 2009), 112.7);
    s2.add(new Month(9, 2009), 101.5);
    s2.add(new Month(10, 2009), 106.1);
    s2.add(new Month(11, 2009), 110.3);
    s2.add(new Month(12, 2009), 111.7);
    s2.add(new Month(1, 2010), 111.0);
    s2.add(new Month(2, 2010), 109.6);
    s2.add(new Month(3, 2010), 113.2);
    s2.add(new Month(4, 2010), 111.6);
    s2.add(new Month(5, 2010), 108.8);
    s2.add(new Month(6, 2010), 101.6);

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s1);
    dataset.addSeries(s2);

    return dataset;
}

From source file:edu.unibonn.plotting.TimeSeriesPlotter_Sensors.java

private XYDataset createDataset(ArrayList<Sensor> sensors) {
    final TimeSeriesCollection dataset = new TimeSeriesCollection();

    for (int i = 0; i < sensors.size(); i++) {
        Sensor current_sensor = sensors.get(i);

        final TimeSeries s1 = new TimeSeries("Sensor " + i, Hour.class);

        for (int j = 0; j < current_sensor.getDimensions(); j++) {
            LocalDateTime current_record_time = current_sensor.getInitial_record_time().plusHours(j);
            s1.add(new Hour(current_record_time.getHour(), current_record_time.getDayOfMonth(),
                    current_record_time.getMonthValue(), current_record_time.getYear()),
                    current_sensor.getMeasurement(j));
        }//from   w ww  .  j av  a2  s  .  co m

        dataset.addSeries(s1);
    }

    dataset.setDomainIsPointsInTime(true);

    return dataset;
}

From source file:TimeSeriesChartDemo1.java

/**
 * Creates a dataset, consisting of two series of monthly data.
 *
 * @return The dataset./*  w  w  w.j a  va 2  s. c  o  m*/
 */
private static XYDataset createDataset() {

    TimeSeries s1 = new TimeSeries("L&G European Index Trust");
    s1.add(new Month(2, 2001), 181.8);
    s1.add(new Month(3, 2001), 167.3);
    s1.add(new Month(4, 2001), 153.8);
    s1.add(new Month(5, 2001), 167.6);
    s1.add(new Month(6, 2001), 158.8);
    s1.add(new Month(7, 2001), 148.3);
    s1.add(new Month(8, 2001), 153.9);
    s1.add(new Month(9, 2001), 142.7);
    s1.add(new Month(10, 2001), 123.2);
    s1.add(new Month(11, 2001), 131.8);
    s1.add(new Month(12, 2001), 139.6);
    s1.add(new Month(1, 2002), 142.9);
    s1.add(new Month(2, 2002), 138.7);
    s1.add(new Month(3, 2002), 137.3);
    s1.add(new Month(4, 2002), 143.9);
    s1.add(new Month(5, 2002), 139.8);
    s1.add(new Month(6, 2002), 137.0);
    s1.add(new Month(7, 2002), 132.8);

    /*        TimeSeries s2 = new TimeSeries("L&G UK Index Trust");
            s2.add(new Month(2, 2001), 129.6);
            s2.add(new Month(3, 2001), 123.2);
            s2.add(new Month(4, 2001), 117.2);
            s2.add(new Month(5, 2001), 124.1);
            s2.add(new Month(6, 2001), 122.6);
            s2.add(new Month(7, 2001), 119.2);
            s2.add(new Month(8, 2001), 116.5);
            s2.add(new Month(9, 2001), 112.7);
            s2.add(new Month(10, 2001), 101.5);
            s2.add(new Month(11, 2001), 106.1);
            s2.add(new Month(12, 2001), 110.3);
            s2.add(new Month(1, 2002), 111.7);
            s2.add(new Month(2, 2002), 111.0);
            s2.add(new Month(3, 2002), 109.6);
            s2.add(new Month(4, 2002), 113.2);
            s2.add(new Month(5, 2002), 111.6);
            s2.add(new Month(6, 2002), 108.8);
            s2.add(new Month(7, 2002), 101.6);*/

    // ******************************************************************
    //  More than 150 demo applications are included with the JFreeChart
    //  Developer Guide...for more information, see:
    //
    //  >   http://www.object-refinery.com/jfreechart/guide.html
    //
    // ******************************************************************

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s1);
    //dataset.addSeries(s2);

    return dataset;

}

From source file:org.sunzoft.sunstock.StockMain.java

protected XYDataset initChartData() {
    TimeSeries ts1 = new TimeSeries("?");
    for (AccountStatus td : profits) {
        ts1.add(new Day(Integer.parseInt(td.date.substring(6)), Integer.parseInt(td.date.substring(4, 6)),
                Integer.parseInt(td.date.substring(0, 4))), (td.market - td.capital));
    }/*w w w . j ava2s .co  m*/
    TimeSeriesCollection localTimeSeriesCollection = new TimeSeriesCollection();
    localTimeSeriesCollection.addSeries(ts1);
    //localTimeSeriesCollection.addSeries(ts2);
    return localTimeSeriesCollection;
}

From source file:com.view.TimeSeriesChartView.java

public JFreeChart getTimeSeriesChart(Excel theExcel, ReceivingControl theRC) {

    System.out.println(theRC.getNumberOfItem());
    System.out.println(theRC.getNumberOfSite());
    System.out.println(theRC.getNumberOfVendor());
    System.out.println(theRC.getVendorInfo());
    System.out.println(theRC.getSiteInfo());
    System.out.println(theRC.getItemInfo());

    //        TimeSeries item1_xy_data = new TimeSeries("Item1");
    //        TimeSeries item2_xy_data = new TimeSeries("Item2");
    //        TimeSeries item3_xy_data = new TimeSeries("Item3");
    ArrayList<Receiving> theReceiving = theExcel.getSheetReceiving();

    //        HashMap<Month, Integer> item1Map = new HashMap<>();
    //        HashMap<Month, Integer> item2Map = new HashMap<>();
    //        HashMap<Month, Integer> item3Map = new HashMap<>();

    TimeSeries data[] = new TimeSeries[theRC.getNumberOfItem()];
    HashMap<Month, Integer> itemMap[] = new HashMap[theRC.getNumberOfItem()];
    for (int i = 0; i < theRC.getNumberOfItem(); i++) {
        String itemName = "item" + i;
        data[i] = new TimeSeries(itemName);
        itemMap[i] = new HashMap<>();
    }//  ww  w .  j  a v a  2 s . c o  m
    Calendar cal = Calendar.getInstance();
    for (int i = 0; i < theReceiving.size(); i++) {
        cal.setTime(theReceiving.get(i).getDate());
        int month = cal.get(Calendar.MONTH) + 1;
        int year = cal.get(Calendar.YEAR);
        int quantity = theReceiving.get(i).getQuantity();
        Month theMonth = new Month(month, year);
        int itemNum = theReceiving.get(i).getItem() - 1;
        itemMap[itemNum].put(theMonth, updateItemMap(itemMap[itemNum], theMonth, quantity));
        //            if (theReceiving[i].getItem() == 1)
        //            {
        //                item1Map.put(theMonth, updateItemMap(item1Map, theMonth, quantity));
        //            }
        //            else if (theReceiving[i].getItem() == 2)
        //            {
        //                item2Map.put(theMonth, updateItemMap(item2Map, theMonth, quantity));
        //            }
        //            else if (theReceiving[i].getItem() == 3)
        //            {
        //                item3Map.put(theMonth, updateItemMap(item3Map, theMonth, quantity));
        //            }
    }
    TimeSeriesCollection my_data_series = new TimeSeriesCollection();
    for (int i = 0; i < theRC.getNumberOfItem(); i++) {
        for (Map.Entry<Month, Integer> entry : itemMap[i].entrySet()) {
            data[i].add(entry.getKey(), entry.getValue());
        }
        my_data_series.addSeries(data[i]);
    }

    // add series using addSeries method
    //        my_data_series.addSeries(item1_xy_data);
    //        my_data_series.addSeries(item2_xy_data);
    //        my_data_series.addSeries(item3_xy_data);        
    JFreeChart chart = ChartFactory.createTimeSeriesChart("Receiving", "Month", "Quantity", my_data_series,
            true, true, false);
    chart.setBackgroundPaint(Color.YELLOW);
    XYPlot plot = (XYPlot) chart.getPlot();
    plot.setBackgroundPaint(Color.WHITE);
    plot.setDomainGridlinePaint(Color.GREEN);
    plot.setRangeGridlinePaint(Color.orange);
    plot.setAxisOffset(new RectangleInsets(50, 0, 20, 5));
    plot.setDomainCrosshairVisible(true);
    plot.setRangeCrosshairVisible(true);

    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();

    renderer.setBaseShapesVisible(true);
    renderer.setBaseShapesFilled(true);

    DateAxis axis = (DateAxis) plot.getDomainAxis();
    axis.setDateFormatOverride(new SimpleDateFormat("MM.yyyy"));
    return chart;
}

From source file:serverrobot.DynamicGraph.java

public TimeSeriesCollection createYPositionCollection() {
    final TimeSeriesCollection coll = new TimeSeriesCollection();
    coll.addSeries(setPointY);//from  w  w w  . j ava2s  .co m
    coll.addSeries(actPointY);
    return coll;
}

From source file:org.posterita.businesslogic.performanceanalysis.CustomPOSReportManager.java

public static TimeSeriesChart generateTimeSeriesChart(Properties ctx, String title, String subtitle,
        int account_id, Timestamp fromDate, Timestamp toDate, String salesGroup, String priceQtyFilter)
        throws OperationException {
    TimeSeriesChart timeSeriesChart = new TimeSeriesChart();
    timeSeriesChart.setTitle(title);/*from  w w w . j  a v  a  2 s  .  c  o m*/
    timeSeriesChart.setSubtitle(subtitle);
    timeSeriesChart.setShowShapes(true);
    //timeSeriesChart.getDataSetFromSQL(timeSeriesChartSQL);

    String timeSeriesChartSQL = SalesAnalysisReportManager.getTimeSeriesDataSetSQL(ctx, account_id, fromDate,
            toDate, salesGroup);
    ArrayList<Object[]> list = ReportManager.getReportData(ctx, timeSeriesChartSQL, false);

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    TimeSeries series = null;
    String yLabel = null;

    String seriesName = null;
    String date = null;
    BigDecimal price = null;
    String[] s = null;
    int day, month, year;

    for (Object[] data : list) {
        seriesName = (String) data[0];
        date = (String) data[1];
        price = (BigDecimal) data[2];
        s = date.split("-");

        if (s.length != 3)
            throw new OperationException("Unable to generate timeseries. "
                    + "Cause:Invalid date format, the date returned should have the following format 'DD-MM-YYYY'");

        SimpleDateFormat sdf = new SimpleDateFormat();
        Calendar cal = Calendar.getInstance();
        Date d = null;

        try {
            sdf.applyPattern("dd-MM-yyyy");
            d = sdf.parse(date);
        } catch (ParseException e1) {
            try {
                sdf.applyPattern("dd-MMM-yyyy");
                d = sdf.parse(date);
            } catch (ParseException e) {
                throw new OperationException("Unable to generate timeseries. "
                        + "Cause:Invalid date format, the date returned should have one of the following formats 'DD-MM-YYYY' or 'DD-MMM-YYYY'",
                        e);
            }
        }

        cal.setTime(d);

        day = cal.get(Calendar.DATE);
        month = cal.get(Calendar.MONTH) + 1;
        year = cal.get(Calendar.YEAR);

        series = dataset.getSeries(seriesName);

        if (series == null) {
            series = new TimeSeries(seriesName, Day.class);
            series.add(new Day(day, month, year), price);

            dataset.addSeries(series);
        } else {
            series.add(new Day(day, month, year), price);
        } //if   

    } //for

    if (priceQtyFilter.equalsIgnoreCase(Constants.PRICE)) {
        //against price
        String currency = POSTerminalManager.getDefaultSalesCurrency(ctx).getCurSymbol();
        yLabel = "Value (" + currency + ")";
    } else {
        yLabel = "Quantity";
    }

    timeSeriesChart.setYLabel(yLabel);
    timeSeriesChart.setDataset(dataset);
    XYPlot plot = (XYPlot) timeSeriesChart.getChart().getPlot();
    DateAxis axis = (DateAxis) plot.getDomainAxis();

    SimpleDateFormat sdf = new SimpleDateFormat(TimestampConvertor.DEFAULT_DATE_PATTERN1);

    axis.setRange(fromDate, toDate);
    //axis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,1,new SimpleDateFormat("MMM-yyyy")));        
    timeSeriesChart.getChart().setBackgroundPaint(Color.white);

    return timeSeriesChart;
}

From source file:it.marcoberri.mbmeteo.action.chart.Get.java

/**
 * Processes requests for both HTTP/*  www  . j  av  a2  s  .com*/
 * <code>GET</code> and
 * <code>POST</code> methods.
 *
 * @param request servlet request
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    log.debug("start : " + this.getClass().getName());

    final HashMap<String, String> params = getParams(request.getParameterMap());
    final Integer dimy = Default.toInteger(params.get("dimy"), 600);
    final Integer dimx = Default.toInteger(params.get("dimx"), 800);
    final String from = Default.toString(params.get("from") + " 00:00:00", "1970-01-01 00:00:00");
    final String to = Default.toString(params.get("to") + " 23:59:00", "2030-01-01 23:59:00");
    final String field = Default.toString(params.get("field"), "outdoorTemperature");

    request.getSession().setAttribute("from", params.get("from"));
    request.getSession().setAttribute("to", params.get("to"));

    final String cacheKey = getCacheKey(params);

    if (cacheReadEnable) {
        final Query q = ds.find(Cache.class);
        q.filter("cacheKey", cacheKey).filter("servletName", this.getClass().getName());

        final Cache c = (Cache) q.get();

        if (c == null) {
            log.info("cacheKey:" + cacheKey + " on servletName: " + this.getClass().getName() + " not found");
        }

        if (c != null) {
            log.debug("get file from cache id: " + c.getGridId());
            final GridFSDBFile imageForOutput = MongoConnectionHelper.getGridFS()
                    .findOne(new ObjectId(c.getGridId()));
            if (imageForOutput != null) {

                ds.save(c);

                try {
                    response.setHeader("Content-Length", "" + imageForOutput.getLength());
                    response.setHeader("Content-Disposition",
                            "inline; filename=\"" + imageForOutput.getFilename() + "\"");
                    final OutputStream out = response.getOutputStream();
                    final InputStream in = imageForOutput.getInputStream();
                    final byte[] content = new byte[(int) imageForOutput.getLength()];
                    in.read(content);
                    out.write(content);
                    in.close();
                    out.close();
                    return;
                } catch (final IOException e) {
                    log.error(e);
                }

            } else {
                log.error("file not in db");
            }
        }
    }

    final String titleChart = ChartEnumHelper.getByName(field).getTitle();
    final String umChart = ChartEnumHelper.getByName(field).getUm();
    final Query q = ds.createQuery(Meteolog.class);
    final Date dFrom = DateTimeUtil.getDate("yyyy-MM-dd hh:mm:ss", from);
    final Date dTo = DateTimeUtil.getDate("yyyy-MM-dd hh:mm:ss", to);

    q.disableValidation().filter("time >=", dFrom).filter("time <=", dTo);

    final List<Meteolog> meteoLogList = q.asList();
    final TimeSeries series = new TimeSeries(umChart);

    for (Meteolog m : meteoLogList) {
        final Millisecond t = new Millisecond(m.getTime());
        try {
            //violenza di una reflection
            final Method method = m.getClass().getMethod(ChartEnumHelper.getByName(field).getMethod());
            final Number n = (Number) method.invoke(m);
            series.add(t, n);
        } catch (final NoSuchMethodException ex) {
            log.error(ex);
        } catch (final InvocationTargetException ex) {
            log.error(ex);
        } catch (final IllegalAccessException ex) {
            log.error(ex);
        } catch (final SecurityException ex) {
            log.error(ex);
        }

    }

    final TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);

    final JFreeChart chart = ChartFactory.createTimeSeriesChart(titleChart, "", umChart, dataset, false, false,
            false);
    final XYPlot plot = (XYPlot) chart.getPlot();
    final DateAxis axis = (DateAxis) plot.getDomainAxis();
    axis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yyyy HH:mm"));
    axis.setVerticalTickLabels(true);

    if (field.toUpperCase().indexOf("PRESSURE") != -1) {
        plot.getRangeAxis().setRange(chartPressureMin, chartPressureMax);
    }

    final File f = File.createTempFile("mbmeteo", ".jpg");
    ChartUtilities.saveChartAsJPEG(f, chart, dimx, dimy);

    try {

        if (cacheWriteEnable) {

            final GridFSInputFile gfsFile = MongoConnectionHelper.getGridFS().createFile(f);
            gfsFile.setFilename(f.getName());
            gfsFile.save();

            final Cache c = new Cache();
            c.setServletName(this.getClass().getName());
            c.setCacheKey(cacheKey);
            c.setGridId(gfsFile.getId().toString());

            ds.save(c);

        }

        response.setContentType("image/jpeg");
        response.setHeader("Content-Length", "" + f.length());
        response.setHeader("Content-Disposition", "inline; filename=\"" + f.getName() + "\"");
        final OutputStream out = response.getOutputStream();
        final FileInputStream in = new FileInputStream(f.toString());
        final int size = in.available();
        final byte[] content = new byte[size];
        in.read(content);
        out.write(content);
        in.close();
        out.close();
    } catch (final IOException e) {
        log.error(e);
    } finally {
        f.delete();
    }

}

From source file:org.jfree.expdemo.SelectionDemo1.java

/**
 * Creates a dataset, consisting of two series of monthly data.
 * /*from  w  w  w  . j a  v  a2s . c o m*/
 * @return The dataset.
 */
private static TimeSeriesCollection createDataset() {

    TimeSeries s1 = new TimeSeries("S1");
    s1.add(new Month(1, 2009), 181.8);
    s1.add(new Month(2, 2009), 167.3);
    s1.add(new Month(3, 2009), 153.8);
    s1.add(new Month(4, 2009), 167.6);
    s1.add(new Month(5, 2009), 158.8);
    s1.add(new Month(6, 2009), 148.3);
    s1.add(new Month(7, 2009), 153.9);
    s1.add(new Month(8, 2009), 142.7);
    s1.add(new Month(9, 2009), 123.2);
    s1.add(new Month(10, 2009), 131.8);
    s1.add(new Month(11, 2009), 139.6);
    s1.add(new Month(12, 2009), 142.9);
    s1.add(new Month(1, 2010), 138.7);
    s1.add(new Month(2, 2010), 137.3);
    s1.add(new Month(3, 2010), 143.9);
    s1.add(new Month(4, 2010), 139.8);
    s1.add(new Month(5, 2010), 137.0);
    s1.add(new Month(6, 2010), 132.8);

    TimeSeries s2 = new TimeSeries("S2");
    s2.add(new Month(1, 2009), 129.6);
    s2.add(new Month(2, 2009), 123.2);
    s2.add(new Month(3, 2009), 117.2);
    s2.add(new Month(4, 2009), 124.1);
    s2.add(new Month(5, 2009), 122.6);
    s2.add(new Month(6, 2009), 119.2);
    s2.add(new Month(7, 2009), 116.5);
    s2.add(new Month(8, 2009), 112.7);
    s2.add(new Month(9, 2009), 101.5);
    s2.add(new Month(10, 2009), 106.1);
    s2.add(new Month(11, 2009), 110.3);
    s2.add(new Month(12, 2009), 111.7);
    s2.add(new Month(1, 2010), 111.0);
    s2.add(new Month(2, 2010), 109.6);
    s2.add(new Month(3, 2010), 113.2);
    s2.add(new Month(4, 2010), 111.6);
    s2.add(new Month(5, 2010), 108.8);
    s2.add(new Month(6, 2010), 101.6);

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s1);
    dataset.addSeries(s2);

    return dataset;

}