001package bradleyross.opensource.jfreechart;
002import org.jfree.data.time.TimeSeries;
003import org.jfree.data.time.Minute;
004import org.jfree.chart.ChartFactory;
005import org.jfree.chart.ChartUtilities;
006import org.jfree.chart.JFreeChart;
007import org.jfree.chart.ChartFrame;
008import java.util.Date;
009import java.io.File;
010import org.jfree.data.time.TimeSeriesCollection;
011/**
012 * Shows a parameter varying over time with calls giving
013 * the time and the value of the parameter.
014 * @author Bradley Ross
015 * @see org.jfree.data.time.TimeSeries
016 * @see org.jfree.data.time.Minute
017 * @see org.jfree.chart.ChartFactory
018 * @see org.jfree.chart.ChartUtilities
019 * @see org.jfree.chart.JFreeChart
020 * @see org.jfree.data.time.TimeSeriesCollection
021 *
022 */
023public class TimeSeriesExample {
024
025        /**
026         * @param args
027         */
028        public static void main(String[] args) 
029        {
030                TimeSeries heat = new TimeSeries("Temperature", Minute.class);
031                long now = new java.util.Date().getTime();
032                heat.add(new Minute(new Date(now - 10l * 60000l)), 15.0);
033                heat.add(new Minute(new Date(now - 9l * 60000l)), 14.5);
034                heat.add(new Minute(new Date(now - 8l * 60000l)), 20.0);
035                heat.add(new Minute(new Date(now - 7l * 60000l)), 17.0);
036                heat.add(new Minute(new Date(now - 6l * 60000l)), 16.5);
037                heat.add(new Minute(new Date(now - 5l * 60000l)), 15.0);
038                heat.add(new Minute(new Date(now - 4l * 60000l)), 14.0);
039                heat.add(new Minute(new Date(now - 3l * 60000l)), 13.0);
040                TimeSeriesCollection dataset = new TimeSeriesCollection();
041                dataset.addSeries(heat);
042                JFreeChart chart = ChartFactory.createTimeSeriesChart
043                        ("Temperature trend", "Time", "Temperature (degrees F)",
044                                        dataset, true, true, false);
045                try
046                {
047                        if (args.length > 0)
048                        { ChartUtilities.saveChartAsJPEG(new File(args[0]), chart, 500, 300); }
049                        else
050                        {
051                                javax.swing.JMenuBar menuBar = new javax.swing.JMenuBar();
052                                ChartFrame frame = new ChartFrame("sample", chart);
053                                frame.setJMenuBar(menuBar);
054                                frame.pack();
055                                frame.setVisible(true);
056                        }
057                }
058                catch (Exception e)
059                {
060                        System.out.println("Problem occurred creating chart");
061                }
062        }
063}