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

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

Introduction

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

Prototype

public void addSeries(TimeSeries series) 

Source Link

Document

Adds a series to the collection and sends a DatasetChangeEvent to all registered listeners.

Usage

From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java

private IntervalXYDataset getDailyLoginsDataSet() {

    List<ServerWideStatsRecord> totalLogins = getDailyTotalLogins();
    List<ServerWideStatsRecord> uniqueLogins = getDailyUniqueLogins();
    if (totalLogins == null || uniqueLogins == null) {
        return null;
    }//w  w  w. j  a  v a  2 s . c  o  m

    TimeSeries s1 = new TimeSeries(msgs.getString("legend_logins"), Day.class);
    TimeSeries s2 = new TimeSeries(msgs.getString("legend_unique_logins"), Day.class);
    for (ServerWideStatsRecord login : totalLogins) {
        Day day = new Day((Date) login.get(0));
        s1.add(day, (Long) login.get(1));
    }

    for (ServerWideStatsRecord login : uniqueLogins) {
        Day day = new Day((Date) login.get(0));
        s2.add(day, (Long) login.get(1));
    }

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

    TimeSeries mavS1 = MovingAverage.createMovingAverage(s1, "7 day login moving average", 7, 7);
    dataset.addSeries(mavS1);

    TimeSeries mavS2 = MovingAverage.createMovingAverage(s2, "7 day unique login moving average", 7, 7);
    dataset.addSeries(mavS2);

    return dataset;
}

From source file:de.fischer.thotti.reportgen.diagram.ChartGenerator.java

public ChartMetaData generateSingleVariantsChart(final String testId, String jvmArgsId, String paramGrpId) {

    String variantId = String.format("%s-%s-%s", testId, jvmArgsId, paramGrpId);

    File chartFile;// www .  j  av  a 2  s .co  m
    try {
        final TimeSeriesCollection collection = new TimeSeriesCollection();

        String chartTitle = String.format("%s-%s-%s", testId, jvmArgsId, paramGrpId);
        String svgFilename = String.format("%s-%s-%s.svg", testId, jvmArgsId, paramGrpId);

        chartFile = new File(baseDir, svgFilename);

        TimeSeries series = new TimeSeries(String.format("Average of %s", variantId), Day.class);
        TimeSeries mediaSeries = new TimeSeries(String.format("Median of %s", variantId), Day.class);

        List<NDResultEntity> results = persistenceHelper.findAllResultsForVariant(testId, jvmArgsId,
                paramGrpId);

        SortedSet<NDResultEntity> sortedSet = new TreeSet<NDResultEntity>(
                new TestVariantModel.DateComparator());

        sortedSet.addAll(results);

        Iterator<Measurement> itr = new AverageDayCombinerIterator(sortedSet.iterator());

        while (itr.hasNext()) {
            Measurement singleResult = itr.next();

            Date startDate = singleResult.getPointInTime();
            double time = singleResult.getDuration();

            double t2 = convertMilliSecsToSeconds(time);

            series.add(new Day(startDate), t2);
        }

        collection.addSeries(series);

        Iterator<DatePoint> medianItr = new MedianIterator(sortedSet.iterator());

        while (medianItr.hasNext()) {
            DatePoint singleResult = medianItr.next();

            Date startDate = singleResult.getPointInTime();
            double value = convertMilliSecsToSeconds(singleResult.getValue());

            mediaSeries.add(new Day(startDate), value);
        }

        collection.addSeries(mediaSeries);

        final JFreeChart chart = createChart(chartTitle, collection);

        saveChartAsSVG(chart, svgFilename);

        System.out.println(String.format("Written %s", chartFile.toString()));

        return new ChartMetaData().withFilename(chartFile.getName()).withWidth(DEFAULT_CHAR_WIDTH)
                .withHeight(DEFAULT_CHAR_HEIGHT).withFormat("SVG");

    } catch (IOException ioe) {
        // @todo Throw an better exception!
        ioe.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
    }

    return null;
}

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

/**
 * Creates a combined and overlaid chart.
 * <p>/*from w  w w.jav  a2s.  c  om*/
 * Note: from version 0.9.10, the overlaid chart is no longer supported (you can achieve
 * the same result using a regular XYPlot with multiple datasets and renderers).
 *
 * @return a combined and overlaid chart.
 */
public JFreeChart createCombinedAndOverlaidChart1() {

    // create a default chart based on some sample data...
    final String title = this.resources.getString("combined.combined-overlaid.title");
    final String subtitleStr = this.resources.getString("combined.combined-overlaid.subtitle");
    final String domain = this.resources.getString("combined.combined-overlaid.domain");
    final String[] ranges = this.resources.getStringArray("combined.combined-overlaid.ranges");

    final TimeSeries jpy = DemoDatasetFactory.createJPYTimeSeries();
    final TimeSeries mav = MovingAverage.createMovingAverage(jpy, "30 Day Moving Average", 30, 30);

    final TimeSeriesCollection dataset0 = new TimeSeriesCollection();
    dataset0.addSeries(jpy);

    final TimeSeriesCollection dataset1 = new TimeSeriesCollection();
    dataset1.addSeries(jpy);
    dataset1.addSeries(mav);

    final DefaultHighLowDataset highLowDataset = DemoDatasetFactory.createHighLowDataset();
    final XYDataset highLowDatasetMA = MovingAverage.createMovingAverage(highLowDataset, " (MA)",
            5 * 24 * 60 * 60 * 1000L, 5 * 24 * 60 * 60 * 1000L);

    // make one vertical axis for each (vertical) chart
    final NumberAxis[] valueAxis = new NumberAxis[3];
    for (int i = 0; i < valueAxis.length; i++) {
        valueAxis[i] = new NumberAxis(ranges[i]);
        if (i <= 1) {
            valueAxis[i].setAutoRangeIncludesZero(false); // override default
        }
    }

    // create CombinedPlot...
    final CombinedDomainXYPlot parent = new CombinedDomainXYPlot(new DateAxis(domain));

    final int[] weight = { 1, 2, 2 };

    // add subplot1...
    final XYItemRenderer renderer1 = new StandardXYItemRenderer();
    final XYPlot subplot1 = new XYPlot(dataset0, null, new NumberAxis(ranges[0]), renderer1);
    final NumberAxis axis1 = (NumberAxis) subplot1.getRangeAxis();
    axis1.setTickLabelFont(new Font("Monospaced", Font.PLAIN, 7));
    axis1.setLabelFont(new Font("SansSerif", Font.PLAIN, 8));
    axis1.setAutoRangeIncludesZero(false);
    parent.add(subplot1, weight[0]);

    // add subplot2 (an overlaid plot)...
    final XYPlot subplot2 = new XYPlot(dataset0, null, new NumberAxis(ranges[1]), new StandardXYItemRenderer());
    final NumberAxis axis2 = (NumberAxis) subplot2.getRangeAxis();
    axis2.setTickLabelFont(new Font("Monospaced", Font.PLAIN, 7));
    axis2.setLabelFont(new Font("SansSerif", Font.PLAIN, 8));
    axis2.setAutoRangeIncludesZero(false);
    subplot2.setDataset(1, dataset1);
    subplot2.setRenderer(1, new StandardXYItemRenderer());

    parent.add(subplot2, weight[1]);

    // add subplot3 (an overlaid plot)...
    final XYItemRenderer renderer3 = new HighLowRenderer();
    final XYPlot subplot3 = new XYPlot(highLowDataset, null, new NumberAxis(ranges[2]), renderer3);
    final NumberAxis axis3 = (NumberAxis) subplot3.getRangeAxis();
    axis3.setTickLabelFont(new Font("Monospaced", Font.PLAIN, 7));
    axis3.setLabelFont(new Font("SansSerif", Font.PLAIN, 8));
    axis3.setAutoRangeIncludesZero(false);
    subplot3.setDataset(1, highLowDatasetMA);
    subplot3.setRenderer(1, new StandardXYItemRenderer());

    parent.add(subplot3, weight[2]);

    // now create the master JFreeChart object
    final JFreeChart chart = new JFreeChart(title, new Font("SansSerif", Font.BOLD, 12), parent, true);

    // then customise it a little...
    final TextTitle subtitle = new TextTitle(subtitleStr, new Font("SansSerif", Font.BOLD, 10));
    chart.addSubtitle(subtitle);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));
    return chart;

}

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

/**
 * //from   w  ww . j  a  v  a2  s  . co  m
 */
private void initialize() {
    this.setSize(new Dimension(580, 504));

    if (site != null) {
        this.setTitle(MessageFormat.format(Constant.messages.getString("ascan.progress.title"), site));
    }

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

    JPanel hostPanel = new JPanel();
    hostPanel.setLayout(new GridBagLayout());
    hostPanel.add(new JLabel(Constant.messages.getString("ascan.progress.label.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(Constant.messages.getString("ascan.progress.tab.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(Constant.messages.getString("ascan.progress.chart.1xx"));
        this.series200 = new TimeSeries(Constant.messages.getString("ascan.progress.chart.2xx"));
        this.series300 = new TimeSeries(Constant.messages.getString("ascan.progress.chart.3xx"));
        this.series400 = new TimeSeries(Constant.messages.getString("ascan.progress.chart.4xx"));
        this.series500 = new TimeSeries(Constant.messages.getString("ascan.progress.chart.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.GRAY); // 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.MAGENTA); // 400: Bad req
        chart.getXYPlot().getRenderer(0).setSeriesPaint(5, Color.RED); // 500: Internal error

        final ChartPanel chartPanel = new ChartPanel(chart);
        tab2.add(chartPanel, LayoutHelper.getGBC(0, 0, 1, 1.0D, 1.0D));

        tabbedPane.insertTab(Constant.messages.getString("ascan.progress.tab.chart"), 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:edu.fullerton.ldvservlet.SrcList.java

private PageItem makePlots(ArrayList<ChanSourceData> csdList, String name, Database db, Page vpage,
        ViewUser vuser, String contextPath) throws WebUtilException, LdvTableException {
    PageItemList ret = new PageItemList();
    CombinedDomainXYPlot plot = new CombinedDomainXYPlot(new DateAxis("Date/Time (UTC)"));
    plot.setGap(10.0);//from w  w  w  .  j av  a 2s  . c om

    String baseName = "";
    StringBuilder errors = new StringBuilder();
    int plotNum = 0;
    Color[] colors = { Color.RED, Color.BLUE, Color.MAGENTA, Color.ORANGE, Color.DARK_GRAY, Color.GREEN };
    boolean gotData = false;
    TimeInterval timeRange = null;
    for (ChanSourceData csd : csdList) {
        TimeInterval ti = csd.getTimeRange();
        if (ti != null) {
            if (timeRange == null) {
                timeRange = ti;
            } else if (timeRange.overlaps(ti)) {
                timeRange = timeRange.mergeIntervals(ti);
            } else if (ti.getStartGps() < timeRange.getStartGps()) {
                timeRange.setStartGps(ti.getStartGps());
            } else if (ti.getStopGps() > timeRange.getStopGps()) {
                timeRange.setStopGps(ti.getStopGps());
            }
        }
    }
    if (timeRange != null) {
        for (ChanSourceData csd : csdList) {
            baseName = csd.getChanInfo().getBaseName();
            TimeSeriesCollection mtds = new TimeSeriesCollection();
            String server = csd.getChanInfo().getServer().replace(".caltech.edu", "");
            String legend = String.format("Type: %1$s at %2$s", csd.getChanInfo().getcType(), server);
            TimeSeries ts;
            double[][] data = csd.getGraphData();
            if (data == null) {
                data = new double[2][2];
                data[0][0] = timeRange.getStartGps();
                data[1][0] = timeRange.getStopGps();
                data[0][1] = data[1][1] = 0;
                errors.append("Error getting data for: ").append(legend).append("<br>");
            } else {
                gotData = true;
            }
            for (double[] d : data) {
                d[1] = d[1] <= 1 ? 1 : d[1];
            }
            ts = getTimeSeries(data, legend);

            mtds.addSeries(ts);
            XYAreaRenderer renderer = new XYAreaRenderer(XYAreaRenderer.AREA);

            BasicStroke str = new BasicStroke(2);
            int colorIdx = plotNum % colors.length;
            Color color = colors[colorIdx];
            NumberAxis yAxis = new NumberAxis("% Avail");
            yAxis.setRange(0, 100);
            renderer.setBaseFillPaint(color);
            renderer.setSeriesFillPaint(0, Color.WHITE);
            renderer.setBaseStroke(str);
            renderer.setUseFillPaint(true);
            XYPlot subplot = new XYPlot(mtds, null, yAxis, renderer);
            plot.add(subplot);

            plotNum++;
        }

        ChartPanel cpnl;
        JFreeChart chart;
        String gtitle = String.format("Available data for %1$s ", baseName);
        String subTitleTxt = String.format("From %1$s to %2$s",
                TimeAndDate.gpsAsUtcString(timeRange.getStartGps()),
                TimeAndDate.gpsAsUtcString(timeRange.getStopGps()));

        plot.setOrientation(PlotOrientation.VERTICAL);

        chart = new JFreeChart(gtitle, JFreeChart.DEFAULT_TITLE_FONT, plot, true);

        chart.addSubtitle(new TextTitle(subTitleTxt));
        cpnl = new ChartPanel(chart, false, false, false, false, false);

        PluginSupport psupport = new PluginSupport();
        psupport.setup(db, vpage, vuser);
        int imgId;
        PageItemImage img = null;
        try {
            psupport.setSize(800, 600);
            imgId = psupport.saveImageAsPNG(cpnl);
            String url = String.format("%1$s/view?act=getImg&amp;imgId=%2$d", contextPath, imgId);

            img = new PageItemImage(url, "availability", baseName);

        } catch (SQLException | IOException | NoSuchAlgorithmException ex) {
            String ermsg = String.format("Error creating or saving image: %1$s - $2$s",
                    ex.getClass().getSimpleName(), ex.getLocalizedMessage());
            errors.append(ermsg);

        }
        if (errors.length() > 0) {
            ret.add(errors.toString());
        }
        if (img != null) {
            ret.add(img);
        }
    } else {
        ret.add("No data to plot.");
    }
    return ret;
}

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

/**
 * Creates a horizontally combined chart.
 *
 * @return a horizontally combined chart.
 *//*from  ww w .java 2 s  .  c  o m*/
public JFreeChart createHorizontallyCombinedChart() {

    // create a default chart based on some sample data...
    final String title = this.resources.getString("combined.horizontal.title");
    final String subtitleStr = this.resources.getString("combined.horizontal.subtitle");
    final String[] domains = this.resources.getStringArray("combined.horizontal.domains");
    final String rangeAxisLabel = this.resources.getString("combined.horizontal.range");

    final TimeSeriesCollection dataset0 = new TimeSeriesCollection();
    final TimeSeries eur = DemoDatasetFactory.createEURTimeSeries();
    dataset0.addSeries(eur);

    final TimeSeriesCollection dataset1 = new TimeSeriesCollection();
    final TimeSeries mav = MovingAverage.createMovingAverage(eur, "EUR/GBP (30 Day MA)", 30, 30);
    dataset1.addSeries(eur);
    dataset1.addSeries(mav);

    final TimeSeriesCollection dataset2 = new TimeSeriesCollection();
    dataset2.addSeries(eur);

    // make a combined range plot
    final NumberAxis valueAxis = new NumberAxis(rangeAxisLabel);
    valueAxis.setAutoRangeIncludesZero(false); // override default
    final CombinedRangeXYPlot parent = new CombinedRangeXYPlot(valueAxis);
    parent.setRenderer(new StandardXYItemRenderer());

    // add subplots
    final int[] weight = { 1, 1, 1 }; // controls space assigned to each subplot

    // add subplot 1...
    final XYPlot subplot1 = new XYPlot(dataset0, new DateAxis(domains[0]), null, new StandardXYItemRenderer());
    parent.add(subplot1, weight[0]);

    // add subplot 2...
    final XYPlot subplot2 = new XYPlot(dataset1, new DateAxis(domains[1]), null, new StandardXYItemRenderer());
    parent.add(subplot2, weight[1]);

    // add subplot 3...
    final XYPlot subplot3 = new XYPlot(dataset2, new DateAxis(domains[2]), null, new XYBarRenderer(0.20));
    parent.add(subplot3, weight[2]);

    // now make the top level JFreeChart
    final JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, parent, true);

    // then customise it a little...
    final TextTitle subtitle = new TextTitle(subtitleStr, new Font("SansSerif", Font.BOLD, 12));
    chart.addSubtitle(subtitle);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));
    return chart;

}

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

/**
 * Creates and returns a sample vertically combined chart.
 *
 * @return a sample vertically combined chart.
 *///  w  w  w. jav a  2s . co  m
public JFreeChart createVerticallyCombinedChart() {

    // create a default chart based on some sample data...
    final String title = this.resources.getString("combined.vertical.title");
    final String subtitleStr = this.resources.getString("combined.vertical.subtitle");
    final String domain = this.resources.getString("combined.vertical.domain");
    final String[] ranges = this.resources.getStringArray("combined.vertical.ranges");

    final TimeSeriesCollection dataset0 = new TimeSeriesCollection();
    final TimeSeries eur = DemoDatasetFactory.createEURTimeSeries();
    dataset0.addSeries(eur);

    final TimeSeriesCollection dataset1 = new TimeSeriesCollection();
    final TimeSeries jpy = DemoDatasetFactory.createJPYTimeSeries();
    final TimeSeries mav = MovingAverage.createMovingAverage(jpy, "JPY/GBP (30 Day MA)", 30, 30);
    dataset1.addSeries(jpy);
    dataset1.addSeries(mav);

    final XYDataset dataset2 = DemoDatasetFactory.createHighLowDataset();

    final TimeSeriesCollection dataset3 = new TimeSeriesCollection();
    dataset3.addSeries(eur);

    // make one shared horizontal axis
    final ValueAxis timeAxis = new DateAxis(domain);

    // make a vertically CombinedPlot that will contain the sub-plots
    final CombinedDomainXYPlot multiPlot = new CombinedDomainXYPlot(timeAxis);

    final int[] weight = { 1, 1, 1, 1 }; // control vertical space allocated to each sub-plot

    // add subplot1...
    final XYPlot subplot1 = new XYPlot(dataset0, null, new NumberAxis(ranges[0]), new StandardXYItemRenderer());
    final NumberAxis range1 = (NumberAxis) subplot1.getRangeAxis();
    range1.setTickLabelFont(new Font("Monospaced", Font.PLAIN, 7));
    range1.setLabelFont(new Font("SansSerif", Font.PLAIN, 8));
    range1.setAutoRangeIncludesZero(false);
    multiPlot.add(subplot1, weight[0]);

    // add subplot2...
    final XYPlot subplot2 = new XYPlot(dataset1, null, new NumberAxis(ranges[1]), new StandardXYItemRenderer());
    final NumberAxis range2 = (NumberAxis) subplot2.getRangeAxis();
    range2.setTickLabelFont(new Font("Monospaced", Font.PLAIN, 7));
    range2.setLabelFont(new Font("SansSerif", Font.PLAIN, 8));
    range2.setAutoRangeIncludesZero(false);
    multiPlot.add(subplot2, weight[1]);

    // add subplot3...
    final XYPlot subplot3 = new XYPlot(dataset2, null, new NumberAxis(ranges[2]), null);
    final XYItemRenderer renderer3 = new HighLowRenderer();
    subplot3.setRenderer(renderer3);
    final NumberAxis range3 = (NumberAxis) subplot3.getRangeAxis();
    range3.setTickLabelFont(new Font("Monospaced", Font.PLAIN, 7));
    range3.setLabelFont(new Font("SansSerif", Font.PLAIN, 8));
    range3.setAutoRangeIncludesZero(false);
    multiPlot.add(subplot3, weight[2]);

    // add subplot4...
    final XYPlot subplot4 = new XYPlot(dataset3, null, new NumberAxis(ranges[3]), null);
    final XYItemRenderer renderer4 = new XYBarRenderer();
    subplot4.setRenderer(renderer4);
    final NumberAxis range4 = (NumberAxis) subplot4.getRangeAxis();
    range4.setTickLabelFont(new Font("Monospaced", Font.PLAIN, 7));
    range4.setLabelFont(new Font("SansSerif", Font.PLAIN, 8));
    range4.setAutoRangeIncludesZero(false);
    multiPlot.add(subplot4, weight[3]);

    // now make the top level JFreeChart that contains the CombinedPlot
    final JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, multiPlot, true);

    // then customise it a little...
    final TextTitle subtitle = new TextTitle(subtitleStr, new Font("SansSerif", Font.BOLD, 12));
    chart.addSubtitle(subtitle);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));
    return chart;

}

From source file:beproject.MainGUI.java

private TimeSeriesCollection timeLinePlot() {
    final TimeSeries relaxed = new TimeSeries("Relaxed");
    final TimeSeries happy = new TimeSeries("Happy");
    final TimeSeries unhappy = new TimeSeries("Unhappy");
    final TimeSeries upset = new TimeSeries("Upset");
    int r = 0, h = 0, u = 0, p = 0;
    ResultSet rs = null;//Regression.getOneHourTweets(15, movieName);
    try {//from w  ww.  ja v  a 2  s.  com
        while (rs.next()) {
            int tmp = rs.getInt(4);
            if (tmp > 0.5) {
                r++;
            } else if (tmp >= 0) {
                h++;
            } else if (tmp > -0.5) {
                u++;
            } else {
                p++;
            }
        }
    } catch (SQLException e) {

    }
    relaxed.add(new Second(), r);
    happy.add(new Second(), h);
    unhappy.add(new Second(), -u);
    upset.add(new Second(), -p);

    final TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(relaxed);
    dataset.addSeries(happy);
    dataset.addSeries(unhappy);
    dataset.addSeries(upset);
    return dataset;
}

From source file:beproject.MainGUI.java

void liveTweetAnalysis() {
    new DataGenerator(1000).start();
    rate = new TimeSeries("Total count", Second.class);
    rate.setMaximumItemAge(15);/*w  w  w  .  j  a v a  2s  . c  om*/
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(rate);
    DateAxis domain = new DateAxis("Time");
    NumberAxis range = new NumberAxis("Tweet Count");
    XYItemRenderer renderer = new XYLineAndShapeRenderer(true, false);
    renderer.setSeriesPaint(1, Color.BLUE);
    renderer.setSeriesStroke(0, new BasicStroke(3f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL));
    renderer.setSeriesStroke(1, new BasicStroke(3f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL));
    XYPlot plot = new XYPlot(dataset, domain, range, renderer);
    domain.setAutoRange(true);
    domain.setLowerMargin(0.0);
    domain.setUpperMargin(0.0);
    domain.setTickLabelsVisible(true);
    range.setTickLabelsVisible(true);

    plot.setDomainGridlinesVisible(false);
    range.setStandardTickUnits(NumberAxis.createIntegerTickUnits());
    renderer.setBaseItemLabelsVisible(true);

    JFreeChart liveTweetAnalysisChart = new JFreeChart("Tweets Per Second", new Font("Tahoma", Font.BOLD, 24),
            plot, true);
    liveTweetAnalysisChart.setBorderVisible(false);
    liveTweetAnalysisChart.setBorderPaint(null);

    ChartUtilities.applyCurrentTheme(liveTweetAnalysisChart);

    domain.setTickLabelInsets(RectangleInsets.ZERO_INSETS);
    range.setTickMarksVisible(false);
    range.setTickLabelInsets(RectangleInsets.ZERO_INSETS);
    domain.setTickMarksVisible(false);
    liveTweetAnalysisChart.setPadding(RectangleInsets.ZERO_INSETS);

    ChartPanel liveTweetAnalysisChartPanel = new ChartPanel(liveTweetAnalysisChart, true);
    liveTweetAnalysisChartPanel.setBorder(null);

    liveTweetsAnalysisPanel.add(liveTweetAnalysisChartPanel, BorderLayout.CENTER);
    liveTweetsAnalysisPanel.validate();
}

From source file:com.jaxzin.iraf.forecast.swing.JForecaster.java

@SuppressWarnings({ "MethodWithMultipleLoops" })
protected XYDataset createDataset() {
    final TimeSeriesCollection tsc = new TimeSeriesCollection();

    //        long start = System.currentTimeMillis();
    Forecast forecastData = null;/*  www . ja  v a  2s  . c o  m*/
    try {
        //            System.out.println("Generating dataset; initial salary is <"+domain.getInitialSalary()+">");
        forecastData = forecaster.forecast(domain);
    } catch (ForecastException e) {
        e.printStackTrace();
    }

    int count = 1;
    assert forecastData != null;
    final int total = forecastData.getForecastData().size() + 1;
    //noinspection ForLoopThatDoesntUseLoopVariable
    for (Iterator i = forecastData.getForecastData().iterator(); i.hasNext(); count++) {
        final List<Money> universeData = (List<Money>) i.next();
        //noinspection ObjectAllocationInLoop,UnqualifiedStaticUsage
        final TimeSeries ts = new TimeSeries(new StringBuilder()
                .append(String.valueOf((count * TOTAL_PERCENTILES) / total)).append("th").toString(),
                Year.class);
        for (Money money : universeData) {
            if (ts.getItemCount() == 0) {
                //noinspection ObjectAllocationInLoop
                ts.add(RegularTimePeriod.createInstance(Year.class, new Date(), TimeZone.getDefault()),
                        money.doubleValue());
            } else {
                ts.add(ts.getNextTimePeriod(), money.doubleValue());
            }
        }

        tsc.addSeries(ts);

    }
    //        System.out.println(System.currentTimeMillis()-start);

    return tsc;
}