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

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

Introduction

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

Prototype

public TimeSeries(Comparable name) 

Source Link

Document

Creates a new (empty) time series.

Usage

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

/**
 * Test the getSurroundingItems() method to ensure it is returning the
 * values we expect./*from   w  ww  .  java2 s.  co  m*/
 */
@Test
public void testGetSurroundingItems() {
    TimeSeries series = new TimeSeries("Series 1");
    TimeSeriesCollection collection = new TimeSeriesCollection(series);
    collection.setXPosition(TimePeriodAnchor.MIDDLE);

    // for a series with no data, we expect {-1, -1}...
    int[] result = collection.getSurroundingItems(0, 1000L);
    assertTrue(result[0] == -1);
    assertTrue(result[1] == -1);

    // now test with a single value in the series...
    Day today = new Day();
    long start1 = today.getFirstMillisecond();
    long middle1 = today.getMiddleMillisecond();
    long end1 = today.getLastMillisecond();

    series.add(today, 99.9);
    result = collection.getSurroundingItems(0, start1);
    assertTrue(result[0] == -1);
    assertTrue(result[1] == 0);

    result = collection.getSurroundingItems(0, middle1);
    assertTrue(result[0] == 0);
    assertTrue(result[1] == 0);

    result = collection.getSurroundingItems(0, end1);
    assertTrue(result[0] == 0);
    assertTrue(result[1] == -1);

    // now add a second value to the series...
    Day tomorrow = (Day) today.next();
    long start2 = tomorrow.getFirstMillisecond();
    long middle2 = tomorrow.getMiddleMillisecond();
    long end2 = tomorrow.getLastMillisecond();

    series.add(tomorrow, 199.9);
    result = collection.getSurroundingItems(0, start2);
    assertTrue(result[0] == 0);
    assertTrue(result[1] == 1);

    result = collection.getSurroundingItems(0, middle2);
    assertTrue(result[0] == 1);
    assertTrue(result[1] == 1);

    result = collection.getSurroundingItems(0, end2);
    assertTrue(result[0] == 1);
    assertTrue(result[1] == -1);

    // now add a third value to the series...
    Day yesterday = (Day) today.previous();
    long start3 = yesterday.getFirstMillisecond();
    long middle3 = yesterday.getMiddleMillisecond();
    long end3 = yesterday.getLastMillisecond();

    series.add(yesterday, 1.23);
    result = collection.getSurroundingItems(0, start3);
    assertTrue(result[0] == -1);
    assertTrue(result[1] == 0);

    result = collection.getSurroundingItems(0, middle3);
    assertTrue(result[0] == 0);
    assertTrue(result[1] == 0);

    result = collection.getSurroundingItems(0, end3);
    assertTrue(result[0] == 0);
    assertTrue(result[1] == 1);
}

From source file:test.integ.be.fedict.performance.util.PerformanceResultDialog.java

private JFreeChart getMemoryChart(int intervalSize, List<MemoryData> memory) {

    if (null == memory || memory.isEmpty()) {
        return null;
    }/*w  ww  . ja v  a2s  .c o m*/

    JFreeChart chart;

    TimeSeries freeSeries = new TimeSeries("Free");
    TimeSeries maxSeries = new TimeSeries("Max");
    TimeSeries totalSeries = new TimeSeries("Total");

    memory.remove(memory.size() - 1);

    for (MemoryData memoryEntry : memory) {
        freeSeries.add(new Second(memoryEntry.getDate()), memoryEntry.getFreeMemory());

        maxSeries.add(new Second(memoryEntry.getDate()), memoryEntry.getMaxMemory());

        totalSeries.add(new Second(memoryEntry.getDate()), memoryEntry.getTotalMemory());
    }

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(freeSeries);
    dataset.addSeries(maxSeries);
    dataset.addSeries(totalSeries);
    chart = ChartFactory.createTimeSeriesChart("eID Trust Service Memory Usage History",
            "Time (interval size " + intervalSize + " msec)", "Memory", dataset, true, false, false);

    chart.addSubtitle(new TextTitle(
            memory.get(0).getDate().toString() + " - " + memory.get(memory.size() - 1).getDate().toString()));

    chart.setBackgroundPaint(Color.WHITE);
    XYPlot plot = chart.getXYPlot();
    plot.setBackgroundPaint(Color.WHITE);
    DateAxis axis = (DateAxis) plot.getDomainAxis();
    axis.setDateFormatOverride(new SimpleDateFormat("HH:mm:ss"));
    ValueAxis valueAxis = plot.getRangeAxis();
    valueAxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer();
    plot.setRangeGridlinePaint(Color.black);
    plot.setDomainGridlinePaint(Color.black);
    plot.setRenderer(renderer);

    return chart;
}

From source file:name.wramner.jmstools.analyzer.DataProvider.java

/**
 * Get a base64-encoded image for inclusion in an img tag with a chart with message flight times.
 *
 * @return chart as base64 string.//from   w ww .  j  a  va  2  s. com
 */
public String getBase64EncodedFlightTimeMetricsImage() {
    TimeSeries timeSeries50p = new TimeSeries("Median");
    TimeSeries timeSeries95p = new TimeSeries("95 percentile");
    TimeSeries timeSeriesMax = new TimeSeries("Max");
    for (FlightTimeMetrics m : getFlightTimeMetrics()) {
        Minute minute = new Minute(m.getPeriod());
        timeSeries50p.add(minute, m.getMedian());
        timeSeries95p.add(minute, m.getPercentile95());
        timeSeriesMax.add(minute, m.getMax());
    }
    TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(timeSeries50p);
    timeSeriesCollection.addSeries(timeSeries95p);
    timeSeriesCollection.addSeries(timeSeriesMax);
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    try {
        JFreeChart chart = ChartFactory.createTimeSeriesChart("Flight time", "Time", "ms",
                timeSeriesCollection);
        chart.getPlot().setBackgroundPaint(Color.WHITE);
        ChartUtilities.writeChartAsPNG(bos, chart, 1024, 500);
    } catch (IOException e) {
        throw new UncheckedIOException(e);
    }
    return "data:image/png;base64," + Base64.getEncoder().encodeToString(bos.toByteArray());
}

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

/**
 * Processes requests for both HTTP/*from   w  w w. java 2s  .co m*/
 * <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:com.ace.capitalflows.ui.frame.chart.NianYdChart.java

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

    final TimeSeries ydResi = new TimeSeries("YdResidual");
    for (int i = 0; dataArray[i] != null && i < dataArray.length - 1; i++) {
        final String nianYd = (String) dataArray[i][0];
        final int year = CommenUtils.parseNian(nianYd);
        final int m = CommenUtils.parseJDORYD(nianYd);
        ydResi.add(new Month(m, year), NumberUtils.toDouble((String) dataArray[i][1]));
    }

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

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

    return dataset;

}

From source file:com.ace.capitalflows.ui.frame.chart.NianJdChart.java

/**
 * Creates a dataset, consisting of two series of monthly data.
 *
 * @return The dataset.// www  .j a v a 2  s. co  m
 */
private XYDataset createDataset() {

    final TimeSeries cudd = new TimeSeries("CuddingTon");
    final TimeSeries resi = new TimeSeries("Residual");
    for (int i = 0; dataArray[i] != null && i < dataArray.length - 1; i++) {
        final String nianJd = (String) dataArray[i][0];
        final int year = CommenUtils.parseNian(nianJd);
        final int jd = CommenUtils.parseJDORYD(nianJd);
        cudd.add(new Quarter(jd, year), NumberUtils.toDouble((String) dataArray[i][1]));
        resi.add(new Quarter(jd, year), NumberUtils.toDouble((String) dataArray[i][2]));
    }

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

    final TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(cudd);
    dataset.addSeries(resi);

    return dataset;

}

From source file:com.bdb.weather.display.RainPlot.java

private void createChartElements() {
    String unitString = Depth.getDefaultUnit().toString();
    rateDomain = String.format(RAIN_RATE_DOMAIN_PREFIX, unitString);
    rainPlot = new XYPlot();
    rainPlot.setRangeAxis(RainRangeAxis.create());
    rainRatePlot = new XYPlot();
    rainRatePlot.setRangeAxis(RainRangeAxis.create());

    plot = new CombinedDomainXYPlot();
    plot.setDomainAxis(new DateAxis("Time"));

    plot.add(rainRatePlot);/*ww w  . jav a2s.  com*/
    plot.add(rainPlot);

    chart = new JFreeChart(plot);
    chart.getLegend().setPosition(RectangleEdge.RIGHT);

    chartViewer = new ChartViewer(chart);
    chartViewer.setMaxHeight(10000);
    chartViewer.setMaxWidth(10000);
    chartViewer.setMinHeight(200);
    chartViewer.setMinWidth(400);

    rainDataset = new TimeSeriesCollection();
    rainSeries = new TimeSeries(RAIN_DOMAIN);
    rainDataset.addSeries(rainSeries);
    rainPlot.setDataset(rainDataset);

    rainRateDataset = new TimeSeriesCollection();
    rainRateSeries = new TimeSeries(rateDomain);
    rainRateDataset.addSeries(rainRateSeries);
    rainRatePlot.setDataset(rainRateDataset);

    XYToolTipGenerator ttg = new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT,
            DateFormat.getTimeInstance(), Depth.getDefaultFormatter());

    XYBarRenderer renderer = new XYBarRenderer();
    renderer.setShadowVisible(false);
    renderer.setBarPainter(new StandardXYBarPainter());
    renderer.setBasePaint(Color.BLUE);
    renderer.setSeriesPaint(0, Color.BLUE);
    renderer.setBaseToolTipGenerator(ttg);
    plot.setRenderer(renderer);

    XYItemRenderer rateRenderer = new XYLineAndShapeRenderer(true, false);
    rateRenderer.setBasePaint(Color.RED);
    rateRenderer.setSeriesPaint(0, Color.RED);
    rateRenderer.setBaseToolTipGenerator(ttg);
    rainRatePlot.setRenderer(rateRenderer);
}

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

/**
 * Check that cloning works./*from ww  w .  j av a2s . c  o  m*/
 */
@Test
public void testClone() throws CloneNotSupportedException {
    TimeSeries series = new TimeSeries("Test Series");
    RegularTimePeriod jan1st2002 = new Day(1, MonthConstants.JANUARY, 2002);
    series.add(jan1st2002, new Integer(42));

    TimeSeries clone;
    clone = (TimeSeries) series.clone();
    clone.setKey("Clone Series");
    clone.update(jan1st2002, new Integer(10));

    int seriesValue = series.getValue(jan1st2002).intValue();
    int cloneValue = clone.getValue(jan1st2002).intValue();

    assertEquals(42, seriesValue);
    assertEquals(10, cloneValue);
    assertEquals("Test Series", series.getKey());
    assertEquals("Clone Series", clone.getKey());
}

From source file:org.zaproxy.zap.extension.customFire.ScanProgressDialog.java

/**
 * //from www  . java  2  s .c om
 */
private void initialize() {
    this.setSize(new Dimension(580, 504));

    if (site != null) {

        this.setTitle("Scann Progress");

    }

    JTabbedPane tabbedPane = new JTabbedPane();
    JPanel tab1 = new JPanel();
    tab1.setLayout(new GridBagLayout());

    JPanel hostPanel = new JPanel();

    hostPanel.setLayout(new GridBagLayout());

    hostPanel.add(new JLabel("Host:"), LayoutHelper.getGBC(0, 0, 1, 0.4D));

    hostPanel.add(getHostSelect(), LayoutHelper.getGBC(1, 0, 1, 0.6D));

    tab1.add(hostPanel, LayoutHelper.getGBC(0, 0, 3, 1.0D, 0.0D));

    tab1.add(getJScrollPane(), LayoutHelper.getGBC(0, 1, 3, 1.0D, 1.0D));//*

    tab1.add(new JLabel(), LayoutHelper.getGBC(0, 1, 1, 1.0D, 0.0D)); // spacer
    tab1.add(getCloseButton(), LayoutHelper.getGBC(1, 2, 1, 0.0D, 0.0D));

    tab1.add(new JLabel(), LayoutHelper.getGBC(2, 1, 1, 1.0D, 0.0D)); // spacer

    tabbedPane.insertTab("Progress", null, tab1, null, 0);
    this.add(tabbedPane);

    int mins = extension.getScannerParam().getMaxChartTimeInMins();
    if (mins > 0) {
        // Treat zero mins as disabled

        JPanel tab2 = new JPanel();

        tab2.setLayout(new GridBagLayout());

        this.seriesTotal = new TimeSeries("TotalResponses"); // Name not shown, so no need to i18n
        final TimeSeriesCollection dataset = new TimeSeriesCollection(this.seriesTotal);

        this.series100 = new TimeSeries("1xx");
        this.series200 = new TimeSeries("2xx");
        this.series300 = new TimeSeries("3xx");
        this.series400 = new TimeSeries("4xx");
        this.series500 = new TimeSeries("5xx");

        this.seriesTotal.setMaximumItemAge(mins * 60);
        this.series100.setMaximumItemAge(mins * 60);
        this.series200.setMaximumItemAge(mins * 60);
        this.series300.setMaximumItemAge(mins * 60);
        this.series400.setMaximumItemAge(mins * 60);
        this.series500.setMaximumItemAge(mins * 60);

        dataset.addSeries(series100);
        dataset.addSeries(series200);
        dataset.addSeries(series300);
        dataset.addSeries(series400);
        dataset.addSeries(series500);

        chart = createChart(dataset);//*

        // Set up some vaguesly sensible colours
        chart.getXYPlot().getRenderer(0).setSeriesPaint(0, Color.BLACK); // Totals
        chart.getXYPlot().getRenderer(0).setSeriesPaint(1, Color.ORANGE); // 100: Info
        chart.getXYPlot().getRenderer(0).setSeriesPaint(2, Color.GREEN); // 200: OK
        chart.getXYPlot().getRenderer(0).setSeriesPaint(3, Color.BLUE); // 300: Info
        chart.getXYPlot().getRenderer(0).setSeriesPaint(4, Color.YELLOW); // 400: Bad req
        chart.getXYPlot().getRenderer(0).setSeriesPaint(5, Color.RED); // 500: Internal error

        chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(5.0f)); // Totals
        chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 100: Info
        chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 200: OK
        chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 300: Info
        chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 400: Bad req
        chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 500: Internal error

        final ChartPanel chartPanel = new ChartPanel(chart);

        tab2.add(chartPanel, LayoutHelper.getGBC(0, 0, 1, 1.0D, 1.0D));

        tabbedPane.insertTab("ResponseCharts", null, tab2, null, 1);

    }

    // Stop the updating thread when the window is closed
    this.addWindowListener(new WindowAdapter() {
        @Override
        public void windowClosed(WindowEvent e) {
            stopThread = true;
        }
    });

}

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));
    }//from w  ww.  j av a2 s .  co  m
    TimeSeriesCollection localTimeSeriesCollection = new TimeSeriesCollection();
    localTimeSeriesCollection.addSeries(ts1);
    //localTimeSeriesCollection.addSeries(ts2);
    return localTimeSeriesCollection;
}