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

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

Introduction

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

Prototype

public void add(RegularTimePeriod period, Number value) 

Source Link

Document

Adds a new data item to the series and sends a org.jfree.data.general.SeriesChangeEvent to all registered listeners.

Usage

From source file:be.vds.jtbdive.client.view.core.stats.StatChartGenerator.java

private static JFreeChart buildChartForDive(StatQueryObject sqo) {
    Collection<StatSerie> s = sqo.getValues();
    String legend = I18nResourceManager.sharedInstance().getString("dive.times");
    TimeSeriesCollection collection = new TimeSeriesCollection();
    for (StatSerie statSerie : s) {
        TimeSeries ts = new TimeSeries(legend);
        for (StatPoint point : statSerie.getPoints()) {
            Date dd = (Date) point.getX();
            FixedMillisecond day = new FixedMillisecond(dd);
            Object index = ts.getDataItem(day);
            if (null != index) {
                GregorianCalendar gc = new GregorianCalendar();
                gc.setTime(dd);/*from www.  ja v a  2  s . com*/
                gc.add(Calendar.MILLISECOND, 1);
                day = new FixedMillisecond(gc.getTime());
            }

            if (sqo.getStatYAxisParams().getStatYAxis().equals(StatYAxis.DEPTHS)) {
                ts.add(day, UnitsAgent.getInstance().convertLengthFromModel((Double) point.getY()));
            } else if (sqo.getStatYAxisParams().getStatYAxis().equals(StatYAxis.TEMPERATURES)) {
                ts.add(day, UnitsAgent.getInstance().convertTemperatureFromModel((Double) point.getY()));
            } else {
                ts.add(day, point.getY());
            }
        }
        collection.addSeries(ts);
    }

    JFreeChart chart = createLineChart(collection, getXLabel(sqo), getYLabel(sqo));

    if (sqo.getStatYAxisParams().getStatYAxis().equals(StatYAxis.DIVE_TIME)) {
        XYPlot xyp = (XYPlot) chart.getPlot();
        ((NumberAxis) xyp.getRangeAxis()).setNumberFormatOverride(new HoursMinutesNumberFormat());
    }

    return chart;
}

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

/**
 * Creates a new {@link TimeSeries} containing moving average values for
 * the given series, calculated by number of points (irrespective of the
 * 'age' of those points).  If the series is empty (contains zero items),
 * the result is an empty series./* w w  w . j av  a 2  s.c o m*/
 * <p>
 * Developed by Benoit Xhenseval (www.ObjectLab.co.uk).
 *
 * @param source  the source series.
 * @param name  the name of the new series.
 * @param pointCount  the number of POINTS used in the average calculation
 *                    (not periods!)
 *
 * @return The moving average series.
 */
public static TimeSeries createPointMovingAverage(TimeSeries source, String name, int pointCount) {

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

    TimeSeries result = new TimeSeries(name);
    double rollingSumForPeriod = 0.0;
    for (int i = 0; i < source.getItemCount(); i++) {
        // get the current data item...
        TimeSeriesDataItem current = source.getRawDataItem(i);
        RegularTimePeriod period = current.getPeriod();
        // FIXME: what if value is null on next line?
        rollingSumForPeriod += current.getValue().doubleValue();

        if (i > pointCount - 1) {
            // remove the point i-periodCount out of the rolling sum.
            TimeSeriesDataItem startOfMovingAvg = source.getRawDataItem(i - pointCount);
            rollingSumForPeriod -= startOfMovingAvg.getValue().doubleValue();
            result.add(period, rollingSumForPeriod / pointCount);
        } else if (i == pointCount - 1) {
            result.add(period, rollingSumForPeriod / pointCount);
        }
    }
    return result;
}

From source file:msec.org.Tools.java

private static XYDataset createDataset(OneDayValue[] oneDayValues) {
    TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();

    for (int j = 0; j < oneDayValues.length; j++) {

        TimeSeries timeseries = new TimeSeries(oneDayValues[j].getDate());

        Minute current = new Minute(gc.getTime());
        int[] data = oneDayValues[j].getValues();

        int len = data.length - 1;
        //if it is today... check actual length for data
        if (oneDayValues[j].getDate().equals(Tools.nowString("yyyyMMdd"))) {
            for (int i = len; i >= 0; i--) {
                if (data[i] != 0) {
                    len = i;//from w  ww  .  j a  va2 s. c o m
                    break;
                }
            }
        }

        for (int i = 0; i < len; ++i) {
            timeseries.add(current, (double) (data[i]));
            current = (Minute) current.next();
        }
        timeseriescollection.addSeries(timeseries);
    }

    return timeseriescollection;
}

From source file:org.mwc.debrief.sensorfusion.views.MouseClickProblemDemo.java

/**
 * @param title//from   w  ww.j a  v  a  2  s  .c om
 *          the frame title.
 */
public MouseClickProblemDemo(final String title) {
    super(title);

    final TimeSeries s1 = new TimeSeries("Series to click");
    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);

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

    final JFreeChart chart = ChartFactory.createTimeSeriesChart("[Alt]-click to switch orientation", // title
            "Time axis", // x-axis label
            "Value axis", // y-axis label
            dataset, // data
            false, // create legend?
            false, // generate tooltips?
            false // generate URLs?
    );

    final ChartPanel chartPanel = new ChartPanel(chart);

    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));

    chartPanel.addChartMouseListener(new ChartMouseListener() {
        public void chartMouseMoved(final ChartMouseEvent arg0) {
        }

        public void chartMouseClicked(final ChartMouseEvent arg0) {
            System.out.println("clicked on:" + arg0.getEntity());

            if (arg0.getTrigger().isAltDown()) {
                if (chart.getXYPlot().getOrientation() == PlotOrientation.HORIZONTAL)
                    chart.getXYPlot().setOrientation(PlotOrientation.VERTICAL);
                else
                    chart.getXYPlot().setOrientation(PlotOrientation.HORIZONTAL);
            }
        }
    });
    setContentPane(chartPanel);
}

From source file:Data.java

/**
 * Creates a dataset, consisting of two series of monthly data.
 *
 * @return The dataset.// w ww .  j a  v  a2 s  .c om
 * @throws ClassNotFoundException 
 */
private static XYDataset createDataset(Statement stmt) throws ClassNotFoundException {

    TimeSeries s1 = new TimeSeries("Humidit");
    TimeSeries s2 = new TimeSeries("Temprature");
    ResultSet rs = null;

    try {
        String sqlRequest = "SELECT * FROM `t_temphum`";
        rs = stmt.executeQuery(sqlRequest);
        Double hum;
        Double temp;
        Timestamp date;

        while (rs.next()) {
            hum = rs.getDouble("tmp_humidity");
            temp = rs.getDouble("tmp_temperature");
            date = rs.getTimestamp("tmp_date");

            if (tempUnit == "F") {
                temp = celsiusToFahrenheit(temp.toString());
            }

            if (date != null) {
                s1.add(new Second(date), hum);
                s2.add(new Second(date), temp);
            } else {
                JOptionPane.showMessageDialog(panelPrincipal, "Il manque une date dans la dase de donne",
                        "Date null", JOptionPane.WARNING_MESSAGE);
            }
        }

        rs.close();
    } catch (SQLException e) {
        String exception = e.toString();

        if (e.getErrorCode() == 0) {
            JOptionPane.showMessageDialog(panelPrincipal,
                    "Le serveur met trop de temps  rpondre ! Veuillez rssayer plus tard ou contacter un administrateur",
                    "Connection timed out", JOptionPane.ERROR_MESSAGE);
        } else {
            JOptionPane.showMessageDialog(panelPrincipal, "Voici l'exception : " + exception,
                    "Titre : exception", JOptionPane.ERROR_MESSAGE);
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (Exception e) {
        String exception = e.toString();
        JOptionPane.showMessageDialog(panelPrincipal, "Voici l'exception : " + exception, "Titre : exception",
                JOptionPane.ERROR_MESSAGE);
        e.printStackTrace();
    }

    // ******************************************************************
    //  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.jfree.chart.demo.TimeSeriesDemo2.java

/**
 * A demonstration application showing a quarterly time series containing a null value.
 *
 * @param title  the frame title./*www.j a  v a  2 s . co  m*/
 */
public TimeSeriesDemo2(final String title) {

    super(title);

    final TimeSeries series = new TimeSeries("Quarterly Data", Quarter.class);
    series.add(new Quarter(1, 2001), 500.2);
    series.add(new Quarter(2, 2001), 694.1);
    series.add(new Quarter(3, 2001), 734.4);
    series.add(new Quarter(4, 2001), 453.2);
    series.add(new Quarter(1, 2002), 500.2);
    series.add(new Quarter(2, 2002), null);
    series.add(new Quarter(3, 2002), 734.4);
    series.add(new Quarter(4, 2002), 453.2);
    final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
    final JFreeChart chart = ChartFactory.createTimeSeriesChart("Time Series Demo 2", "Time", "Value", dataset,
            true, true, false);
    chart.getXYPlot().addRangeMarker(new ValueMarker(550.0));
    final Quarter q = new Quarter(2, 2002);
    chart.getXYPlot().addDomainMarker(new ValueMarker(q.getMiddleMillisecond()));
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

From source file:org.jfree.chart.demo.MouseListenerDemo3.java

public XYDataset createDataset() {
    TimeSeries timeseries = new TimeSeries("L&G European Index Trust");
    timeseries.add(new Month(2, 2001), 181.80000000000001D);
    timeseries.add(new Month(3, 2001), 167.30000000000001D);
    timeseries.add(new Month(4, 2001), 153.80000000000001D);
    timeseries.add(new Month(5, 2001), 167.59999999999999D);
    timeseries.add(new Month(6, 2001), 158.80000000000001D);
    timeseries.add(new Month(7, 2001), 148.30000000000001D);
    timeseries.add(new Month(8, 2001), 153.90000000000001D);
    timeseries.add(new Month(9, 2001), 142.69999999999999D);
    timeseries.add(new Month(10, 2001), 123.2D);
    timeseries.add(new Month(11, 2001), 131.80000000000001D);
    timeseries.add(new Month(12, 2001), 139.59999999999999D);
    timeseries.add(new Month(1, 2002), 142.90000000000001D);
    timeseries.add(new Month(2, 2002), 138.69999999999999D);
    timeseries.add(new Month(3, 2002), 137.30000000000001D);
    timeseries.add(new Month(4, 2002), 143.90000000000001D);
    timeseries.add(new Month(5, 2002), 139.80000000000001D);
    timeseries.add(new Month(6, 2002), 137D);
    timeseries.add(new Month(7, 2002), 132.80000000000001D);
    TimeSeries timeseries1 = new TimeSeries("L&G UK Index Trust");
    timeseries1.add(new Month(2, 2001), 129.59999999999999D);
    timeseries1.add(new Month(3, 2001), 123.2D);
    timeseries1.add(new Month(4, 2001), 117.2D);
    timeseries1.add(new Month(5, 2001), 124.09999999999999D);
    timeseries1.add(new Month(6, 2001), 122.59999999999999D);
    timeseries1.add(new Month(7, 2001), 119.2D);
    timeseries1.add(new Month(8, 2001), 116.5D);
    timeseries1.add(new Month(9, 2001), 112.7D);
    timeseries1.add(new Month(10, 2001), 101.5D);
    timeseries1.add(new Month(11, 2001), 106.09999999999999D);
    timeseries1.add(new Month(12, 2001), 110.3D);
    timeseries1.add(new Month(1, 2002), 111.7D);
    timeseries1.add(new Month(2, 2002), 111D);
    timeseries1.add(new Month(3, 2002), 109.59999999999999D);
    timeseries1.add(new Month(4, 2002), 113.2D);
    timeseries1.add(new Month(5, 2002), 111.59999999999999D);
    timeseries1.add(new Month(6, 2002), 108.8D);
    timeseries1.add(new Month(7, 2002), 101.59999999999999D);
    TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
    timeseriescollection.addSeries(timeseries);
    timeseriescollection.addSeries(timeseries1);
    timeseriescollection.setXPosition(TimePeriodAnchor.MIDDLE);
    return timeseriescollection;
}

From source file:org.jfree.data.time.junit.MovingAverageTest.java

/**
 * Creates a sample series./*from   ww  w. j  a va2s .  com*/
 *
 * @return A sample series.
 */
private TimeSeries createDailyTimeSeries1() {

    TimeSeries series = new TimeSeries("Series 1");
    series.add(new Day(11, MonthConstants.AUGUST, 2003), 11.2);
    series.add(new Day(13, MonthConstants.AUGUST, 2003), 13.8);
    series.add(new Day(17, MonthConstants.AUGUST, 2003), 14.1);
    series.add(new Day(18, MonthConstants.AUGUST, 2003), 12.7);
    series.add(new Day(19, MonthConstants.AUGUST, 2003), 16.5);
    series.add(new Day(20, MonthConstants.AUGUST, 2003), 15.6);
    series.add(new Day(25, MonthConstants.AUGUST, 2003), 19.8);
    series.add(new Day(27, MonthConstants.AUGUST, 2003), 10.7);
    series.add(new Day(28, MonthConstants.AUGUST, 2003), 14.3);
    return series;

}

From source file:org.jfree.chart.demo.TimeSeriesDemo10.java

/**
 * A demonstration application.//from  ww  w . j ava 2s  .co  m
 *
 * @param title  the frame title.
 */
public TimeSeriesDemo10(final String title) {

    super(title);

    final TimeSeries series = new TimeSeries("Per Minute Data", Minute.class);
    final Hour hour = new Hour();
    series.add(new Minute(1, hour), 10.2);
    series.add(new Minute(3, hour), 17.3);
    series.add(new Minute(9, hour), 14.6);
    series.add(new Minute(11, hour), 11.9);
    series.add(new Minute(15, hour), 13.5);
    series.add(new Minute(19, hour), 10.9);
    final TimeSeriesCollection dataset = new TimeSeriesCollection(series);
    final JFreeChart chart = ChartFactory.createTimeSeriesChart("Time Series Demo 10", "Time", "Value", dataset,
            true, true, false);
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 270));
    setContentPane(chartPanel);

}

From source file:org.jfree.chart.demo.XYBarChartDemo2.java

/**
 * Constructs the demo application.//from   ww  w .jav a  2s  . c  om
 *
 * @param title  the frame title.
 */
public XYBarChartDemo2(final String title) {

    super(title);

    // create a dataset...
    final TimeSeries series1 = new TimeSeries("Series 1", Day.class);
    series1.add(new Day(1, 1, 2003), 54.3);
    series1.add(new Day(2, 1, 2003), 20.3);
    series1.add(new Day(3, 1, 2003), 43.4);
    series1.add(new Day(4, 1, 2003), -12.0);

    final TimeSeries series2 = new TimeSeries("Series 2", Day.class);
    series2.add(new Day(1, 1, 2003), 8.0);
    series2.add(new Day(2, 1, 2003), 16.0);
    series2.add(new Day(3, 1, 2003), 21.0);
    series2.add(new Day(4, 1, 2003), 5.0);

    final TimeSeriesCollection data = new TimeSeriesCollection();
    data.setDomainIsPointsInTime(false);
    data.addSeries(series1);
    data.addSeries(series2);

    final JFreeChart chart = createChart(data);

    // add the chart to a panel...
    final ChartPanel chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new java.awt.Dimension(500, 300));
    setContentPane(chartPanel);

}