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.paxle.tools.charts.impl.gui.ChartServlet.java

private JFreeChart createPPMChart() {
    /*//w w  w .  ja  v  a 2  s.  co  m
     * INIT TIME-SERIES 
     */
    final TimeSeriesCollection dataset = new TimeSeriesCollection();

    TimeSeries crawlerPPM = new TimeSeries("Crawler PPM", Minute.class);
    crawlerPPM.setMaximumItemAge(24 * 60);
    dataset.addSeries(crawlerPPM);
    this.seriesMap.put(TSERIES_PPM_CRAWLER, crawlerPPM);

    TimeSeries parserPPM = new TimeSeries("Parser PPM", Minute.class);
    parserPPM.setMaximumItemAge(24 * 60);
    dataset.addSeries(parserPPM);
    this.seriesMap.put(TSERIES_PPM_PARSER, parserPPM);

    TimeSeries indexerPPM = new TimeSeries("Indexer PPM", Minute.class);
    indexerPPM.setMaximumItemAge(24 * 60);
    dataset.addSeries(indexerPPM);
    this.seriesMap.put(TSERIES_PPM_INDEXER, indexerPPM);

    /*
     * INIT CHART
     */
    JFreeChart chart = ChartFactory.createTimeSeriesChart(null, "Time", "PPM", dataset, true, false, false);

    // change axis data format
    ((DateAxis) chart.getXYPlot().getDomainAxis()).setDateFormatOverride(new SimpleDateFormat("HH:mm"));
    chart.setBackgroundPaint(Color.WHITE);
    return chart;
}

From source file:com.jbombardier.reports.OldReportGenerator.java

public void generate(Map<InetSocketAddress, ResultsPackage> agentResults, File reportsDir) {
    Chunker chunker = new Chunker();

    Log.set(Log.LEVEL_DEBUG);/*ww  w.j  a va 2 s  .c o  m*/

    Set<String> totalsTransactionNames = new HashSet<String>();
    Set<String> perAgentTransactionNames = new HashSet<String>();
    Set<String> perAgentPerThreadTransactionNames = new HashSet<String>();
    Set<String> agentStrings = new HashSet<String>();

    Set<InetSocketAddress> keySet = agentResults.keySet();
    for (InetSocketAddress inetSocketAddress : keySet) {
        String agentString = inetSocketAddress.getHostName();
        Log.debug("Process result from agent " + agentString);
        agentStrings.add(agentString);

        ResultsPackage resultsPerThread = agentResults.get(inetSocketAddress);

        Set<String> threadNames = resultsPerThread.getThreadResults().keySet();
        for (String threadName : threadNames) {
            Log.debug("Processing result for thread name ", threadName);
            ThreadResults results = resultsPerThread.getThreadResults().get(threadName);

            Set<String> transactionIDs = results.keySet();
            for (String transactionID : transactionIDs) {
                Log.debug("Processing transactionID '" + transactionID + "'");
                String agentKey = agentString + "." + transactionID + ".elapsed";
                String agentThreadKey = agentString + "." + threadName + "." + transactionID + ".elapsed";
                String totalKey = "total." + transactionID + ".elapsed";

                totalsTransactionNames.add(totalKey);
                perAgentTransactionNames.add(agentKey);
                perAgentPerThreadTransactionNames.add(agentThreadKey);

                AggregatedResultSeries aggregatedResultSeries = results.get(transactionID);
                List<AggregatedResult> aggregatedResults = aggregatedResultSeries.getResults();
                for (AggregatedResult result : aggregatedResults) {
                    Log.debug(result.toString());
                    chunker.onNewResult(agentKey, result.time, result.mean() * 1e-6f);
                    chunker.onNewResult(totalKey, result.time, result.mean() * 1e-6f);
                }
            }
        }
    }

    // The first chart is the [all agents, all threads, all transactions] mean transaction time chart
    TimeSeriesCollection timeSeriesCollection = extractTimeSeries(chunker, totalsTransactionNames,
            Statistic.Mean);
    render("All transactions mean per second elapsed times", timeSeriesCollection,
            new File(reportsDir, "all.transactions.elapsed.png"));

    // The second chart is the [all agents, all threads, all transactions] transaction count chart
    timeSeriesCollection = extractTimeSeries(chunker, totalsTransactionNames, Statistic.Count);
    render("All transactions per second counts", timeSeriesCollection,
            new File(reportsDir, "all.transactions.count.png"));

    // Now lets do the same for each agent
    for (final String agent : agentStrings) {
        TimeSeriesCollection agentTimeSeriesCollection = new TimeSeriesCollection();
        for (String perAgentPerThreadTransactionName : perAgentTransactionNames) {
            if (perAgentPerThreadTransactionName.startsWith(agent)) {
                List<Chunk> timeOrderedResults = chunker
                        .getTimeOrderedResults(perAgentPerThreadTransactionName);
                TimeSeries extractTimeSeries = extractTimeSeries(timeOrderedResults,
                        perAgentPerThreadTransactionName, Statistic.Mean);
                agentTimeSeriesCollection.addSeries(extractTimeSeries);
            }
        }

        render(agent + " transactions mean per second elapsed times", agentTimeSeriesCollection,
                new File(reportsDir, agent + ".transactions.elapsed.png"));
    }

    // Lets have a stab at writing out some csv stuff
    writePerSecondResults(reportsDir, chunker, totalsTransactionNames);
}

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

/**
 * Some tests for the equals() method./*w  w w .  ja  v  a2s.  c om*/
 */
@Test
public void testEquals() {
    TimeSeriesCollection c1 = new TimeSeriesCollection();
    TimeSeriesCollection c2 = new TimeSeriesCollection();

    TimeSeries s1 = new TimeSeries("Series 1");
    TimeSeries s2 = new TimeSeries("Series 2");

    // newly created collections should be equal
    boolean b1 = c1.equals(c2);
    assertTrue("b1", b1);

    // add series to collection 1, should be not equal
    c1.addSeries(s1);
    c1.addSeries(s2);
    boolean b2 = c1.equals(c2);
    assertFalse("b2", b2);

    // now add the same series to collection 2 to make them equal again...
    c2.addSeries(s1);
    c2.addSeries(s2);
    boolean b3 = c1.equals(c2);
    assertTrue("b3", b3);

    // now remove series 2 from collection 2
    c2.removeSeries(s2);
    boolean b4 = c1.equals(c2);
    assertFalse("b4", b4);

    // now remove series 2 from collection 1 to make them equal again
    c1.removeSeries(s2);
    boolean b5 = c1.equals(c2);
    assertTrue("b5", b5);
}

From source file:ch.algotrader.client.chart.ChartTab.java

private void initTimeSeries(int datasetNumber, XYDataset dataset, SeriesDefinitionVO seriesDefinition) {

    IndicatorDefinitionVO indicatorDefinition = (IndicatorDefinitionVO) seriesDefinition;
    TimeSeriesCollection timeSeriesCollection = (TimeSeriesCollection) dataset;

    // create the TimeSeries
    TimeSeries series = new TimeSeries(indicatorDefinition.getLabel());
    timeSeriesCollection.addSeries(series);
    this.indicators.put(indicatorDefinition.getName(), series);

    // get the seriesNumber & color
    final int seriesNumber = timeSeriesCollection.getSeriesCount() - 1;

    // configure the renderer
    final XYItemRenderer renderer = getPlot().getRenderer(datasetNumber);
    renderer.setSeriesPaint(seriesNumber, getColor(indicatorDefinition.getColor()));
    renderer.setSeriesVisible(seriesNumber, seriesDefinition.isSelected());
    renderer.setBaseToolTipGenerator(StandardXYToolTipGenerator.getTimeSeriesInstance());

    if (seriesDefinition.isDashed()) {
        renderer.setSeriesStroke(seriesNumber, new BasicStroke(0.5f, BasicStroke.CAP_BUTT,
                BasicStroke.JOIN_MITER, 10.0f, new float[] { 5.0f }, 0.0f));
    } else {/*from   w  w  w . j  a v a 2s .co  m*/
        renderer.setSeriesStroke(seriesNumber, new BasicStroke(0.5f));
    }

    // add the menu item
    JCheckBoxMenuItem menuItem = new JCheckBoxMenuItem(seriesDefinition.getLabel());
    menuItem.setSelected(seriesDefinition.isSelected());
    menuItem.addActionListener(new ActionListener() {
        @Override
        public void actionPerformed(ActionEvent e) {
            resetAxis();
            renderer.setSeriesVisible(seriesNumber, ((JCheckBoxMenuItem) e.getSource()).isSelected());
            initAxis();
        }
    });
    this.getPopupMenu().add(menuItem);
}

From source file:org.paxle.tools.charts.impl.gui.ChartServlet.java

private JFreeChart createCPUChart() {
    final TimeSeriesCollection dataset = new TimeSeriesCollection();

    TimeSeries series = null;/* ww  w. j ava  2  s. co  m*/

    series = new TimeSeries("Total CPU Usage", Minute.class);
    series.setMaximumItemAge(24 * 60);
    dataset.addSeries(series);
    this.seriesMap.put(TSERIES_CPU_TOTAL, series);

    series = new TimeSeries("User CPU Usage", Minute.class);
    series.setMaximumItemAge(24 * 60);
    dataset.addSeries(series);
    this.seriesMap.put(TSERIES_CPU_USER, series);

    series = new TimeSeries("System CPU Usage", Minute.class);
    series.setMaximumItemAge(24 * 60);
    dataset.addSeries(series);
    this.seriesMap.put(TSERIES_CPU_SYSTEM, series);

    // init chart
    JFreeChart chart = ChartFactory.createTimeSeriesChart(null, "Time", "Usage [%]", dataset, true, false,
            false);

    // change axis data format
    ((DateAxis) chart.getXYPlot().getDomainAxis()).setDateFormatOverride(new SimpleDateFormat("HH:mm"));
    chart.getXYPlot().getRangeAxis().setRange(0, 100);
    chart.getXYPlot().setNoDataMessage("No data available");
    chart.setBackgroundPaint(Color.WHITE);
    return chart;
}

From source file:desmoj.extensions.visualization2d.engine.modelGrafic.StatisticGrafic.java

/**
 * Build content for animationType StatisticGrafic.ANIMATION_TimeValueDiagram
 * @return// w w  w.  ja va2s.  c o  m
 * @throws ModelException
 */
private JPanel buildTimeValueDiagramPanel() throws ModelException {
    JPanel out = null;
    XYPlot plot = null;
    switch (this.statistic.getTypeData()) {
    case Statistic.DATA_Observations:
        XYSeriesCollection dataset1 = new XYSeriesCollection();
        dataset1.addSeries(this.statistic.getObservationSerie());
        this.chart = ChartFactory.createScatterPlot(null, "Time", null, dataset1, PlotOrientation.VERTICAL,
                false, true, false);
        this.chart.setBackgroundPaint(Grafic.COLOR_BACKGROUND);
        plot = this.chart.getXYPlot();
        break;
    case Statistic.DATA_TimeSeries:
        TimeSeriesCollection dataset2 = new TimeSeriesCollection();
        dataset2.addSeries(this.statistic.getTimeSerie());
        this.chart = ChartFactory.createXYStepChart(null, "Time", null, dataset2, PlotOrientation.VERTICAL,
                false, true, false);
        this.chart.setBackgroundPaint(Grafic.COLOR_BACKGROUND);
        plot = this.chart.getXYPlot();
        break;
    }
    if (plot != null) {
        plot.setBackgroundPaint(StatisticGrafic.DIAGRAM_BACKGROUND);
        plot.setDomainGridlinePaint(StatisticGrafic.DIAGRAM_GRID);
        plot.setRangeGridlinePaint(StatisticGrafic.DIAGRAM_GRID);
        plot.setDomainCrosshairVisible(true);
        plot.setRangeCrosshairVisible(true);
        String rangeAxisLabel = "";
        switch (statistic.getTypeIndex()) {
        case Statistic.INDEX_Min_Max:
            rangeAxisLabel = "min - max";
            break;
        case Statistic.INDEX_Mean_StdDev:
            rangeAxisLabel = "\u03BC-\u03C3 - mean - \u03BC+\u03C3";
            break;
        }
        //this.buildTimeValueDiagramAxisFormat(plot, rangeAxisLabel);
        plot.getRenderer().setSeriesStroke(0, new BasicStroke(2.0f));
        plot.getRenderer().setSeriesPaint(0, StatisticGrafic.DIAGRAM_FORGROUND);

    }
    out = new ChartPanel(chart);
    out.setPreferredSize(new Dimension(350, 200));
    return out;
}

From source file:org.paxle.tools.charts.impl.gui.ChartServlet.java

private JFreeChart createIndexChart() {
    // init Time-Series
    TimeSeries indexSizeSeries = new TimeSeries("Index Size", Minute.class);
    indexSizeSeries.setMaximumItemAge(24 * 60);
    this.seriesMap.put(TSERIES_INDEX_SIZE, indexSizeSeries);

    // init chart
    JFreeChart chart = ChartFactory.createTimeSeriesChart(null, "Time", "#Docs",
            new TimeSeriesCollection(indexSizeSeries), true, false, false);

    XYPlot plot = chart.getXYPlot();/*  w w w.j  ava2s.  c  o m*/

    final TimeSeriesCollection linksDataset = new TimeSeriesCollection();

    TimeSeries totalLinksSeries = new TimeSeries("Total URI", Minute.class);
    totalLinksSeries.setMaximumItemAge(24 * 60);
    linksDataset.addSeries(totalLinksSeries);
    this.seriesMap.put(TSERIES_CMD_SIZE_TOTAL, totalLinksSeries);

    TimeSeries enqueuedLinksSeries = new TimeSeries("Enqueued URI", Minute.class);
    enqueuedLinksSeries.setMaximumItemAge(24 * 60);
    linksDataset.addSeries(enqueuedLinksSeries);
    this.seriesMap.put(TSERIES_CMD_SIZE_ENQUEUD, enqueuedLinksSeries);

    NumberAxis axis2 = new NumberAxis("#Links");
    axis2.setAutoRangeIncludesZero(false);
    axis2.setNumberFormatOverride(new DecimalFormat("#,##0"));
    plot.setRangeAxis(1, axis2);
    plot.setDataset(1, linksDataset);
    plot.setRenderer(1, new StandardXYItemRenderer());
    plot.mapDatasetToRangeAxis(1, 1);

    NumberAxis axis1 = (NumberAxis) plot.getRangeAxis(0);
    axis1.setNumberFormatOverride(new DecimalFormat("#,##0"));

    // change axis date format
    ((DateAxis) plot.getDomainAxis()).setDateFormatOverride(new SimpleDateFormat("HH:mm"));
    chart.setBackgroundPaint(Color.WHITE);
    return chart;
}

From source file:org.mwc.cmap.LiveDataMonitor.views.LiveDataMonitor.java

/**
 * a watchable item has been selected, better show it
 * /*from w w  w . j a v a2 s .  com*/
 * @param attribute
 *          what we're going to watch
 */
private void storeDataset(final IAttribute attribute, final Object index) {
    final Vector<DataDoublet> data = attribute.getHistoricValues(index);

    // is there any data in it?
    if (data.size() == 0) {
        _chart.setTitle(attribute.getName());
        _chart.getXYPlot().setDataset(null);
    } else {
        final TimeSeriesCollection dataset = new TimeSeriesCollection();
        final TimeSeries series = new TimeSeries(attribute.getName());

        for (final Iterator<DataDoublet> iterator = data.iterator(); iterator.hasNext();) {
            final DataDoublet thisD = (DataDoublet) iterator.next();
            final Object thisVal = thisD.getValue();
            if (thisVal instanceof Number) {
                series.addOrUpdate(new Millisecond(new Date(thisD.getTime())), (Number) thisD.getValue());
            }
        }
        // did it work?
        if (!series.isEmpty()) {
            dataset.addSeries(series);
            _chart.getXYPlot().setDataset(dataset);
            _chart.setTitle(attribute.getName());
            _chart.getXYPlot().getRangeAxis().setLabel(attribute.getUnits());
        }
    }
}

From source file:de.suse.swamp.modules.scheduledjobs.Statistics.java

/**
 * Generating the graphs that show the amount of running finished wfs over the time.
 */// w ww. ja  v  a2  s  .c  o m
protected void generateWorkflowGraph(String templateName, Date startDate, Date endDate) throws Exception {
    List stats = StatisticStorage.loadStats(templateName, startDate, endDate);
    // only generate if we have stats: 
    if (stats != null && stats.size() > 0) {
        TimeSeriesCollection dataset = new TimeSeriesCollection();
        TimeSeriesCollection avgdataset = new TimeSeriesCollection();
        TimeSeries serie = new TimeSeries("running workflows", Day.class);
        TimeSeries avgserie = new TimeSeries("average age", Day.class);
        for (Iterator datait = stats.iterator(); datait.hasNext();) {
            Dbstatistics statisticItem = (Dbstatistics) datait.next();
            serie.addOrUpdate(new Day(statisticItem.getDate()), statisticItem.getRunningcount());
            avgserie.addOrUpdate(new Day(statisticItem.getDate()), statisticItem.getAvgage() / (3600 * 24));
        }
        dataset.addSeries(serie);
        avgdataset.addSeries(avgserie);

        JFreeChart chart = ChartFactory.createTimeSeriesChart("Running " + templateName + " workflows", "Date",
                "running workflows", dataset, false, false, false);

        // modify chart appearance
        chart.setBackgroundImageAlpha(0.5f);
        XYPlot plot = chart.getXYPlot();
        plot.setBackgroundPaint(Color.lightGray);
        plot.setDomainGridlinePaint(Color.white);
        plot.setRangeGridlinePaint(Color.white);
        plot.getRangeAxis().setLabelPaint(Color.blue);

        // add the second line: 
        final NumberAxis axis2 = new NumberAxis("Avg. age in days");
        axis2.setLabelPaint(Color.red);
        plot.setRangeAxis(1, axis2);
        plot.setDataset(1, avgdataset);
        plot.mapDatasetToRangeAxis(1, 1);

        final XYLineAndShapeRenderer renderer2 = new XYLineAndShapeRenderer();
        renderer2.setDrawOutlines(false);
        renderer2.setDrawSeriesLineAsPath(true);
        renderer2.setBaseShapesVisible(false);
        plot.setRenderer(1, renderer2);

        File image = new File(statPath + fs + templateName + ".png");
        if (image.exists())
            image.delete();
        try {
            ChartUtilities.saveChartAsPNG(image, chart, 750, 200);
        } catch (Exception e) {
            Logger.ERROR("Error generating graph for " + templateName + ", e: " + e.getMessage());
            e.printStackTrace();
            throw e;
        }
    }
}

From source file:gov.llnl.lc.infiniband.opensm.plugin.gui.chart.SimpleXY_ChartPanel.java

/**
 * Creates a sample dataset.//from   w  ww  .j  ava 2  s  .c o  m
 *
 * @param name  the dataset name.
 * @param base  the starting value.
 * @param start  the starting period.
 * @param count  the number of values to generate.
 *
 * @return The dataset.
 */
private XYDataset createDataset(OMS_Collection history, Object userObject, Object userElement) {
    // need to set the Frame and Chart titles here
    initTitles(history.getOMS(0));

    // the dataset is a timeseries collection
    double dValue = 0.0;
    long lValue = 0;
    TimeStamp ts = null;
    RegularTimePeriod ms = null;

    // iterate through the deltas (if rate based), or OMS's if counter based
    if (isUtilizationType()) {
        // what type of analysis are we doing; SW-SW, ALL, or SW-CA??
        OSM_NodeType aType = OSM_NodeType.UNKNOWN;

        // create junk data, so the plot will appear quickly, while the worker works...

        OSM_FabricDeltaCollection deltaHistory = history.getOSM_FabricDeltaCollection();
        for (int j = 0; j < deltaHistory.getSize(); j++) {
            OSM_FabricDelta delta = deltaHistory.getOSM_FabricDelta(j);
            dValue = 4.0;
            //          OSM_FabricDeltaAnalyzer DeltaAnalysis = new OSM_FabricDeltaAnalyzer(delta, aType);

            //          dValue = DeltaAnalysis.getFabricRateUtilizationMean();
            ts = delta.getTimeStamp();
            //          ts = DeltaAnalysis.getDeltaTimeStamp();

            ms = new FixedMillisecond(ts.getTimeInMillis());
            TSeries.addOrUpdate(ms, dValue);
        }
    } else {
        // iterate through the collection, and build up a time series
        for (int j = 0; j < history.getSize(); j++) {
            OpenSmMonitorService osm = history.getOMS(j);

            if (Port != null) {
                // find the desired port counter, in this instance
                OSM_Port p = osm.getFabric().getOSM_Ports().get(OSM_Port.getOSM_PortKey(Port));
                lValue = p.pfmPort.getCounter(PortCounter);
                ts = p.pfmPort.getCounterTimeStamp();

            } else if (MADCounter != null) {
                // find the desired MAD counter, in this instance
                lValue = MADCounter.getCounterValue(osm.getFabric().getOsmStats());
                ts = osm.getFabric().getTimeStamp();
                //            ts = osm.getTimeStamp();

            } else if (EventType != null) {
                // find the desired Event counter, in this instance
                lValue = osm.getFabric().getOsmEventStats().getCounter(EventType);
                ts = osm.getFabric().getTimeStamp();
                //          ts = osm.getTimeStamp();

            } else
                continue;
            ms = new FixedMillisecond(ts.getTimeInMillis());

            TSeries.addOrUpdate(ms, (double) lValue);
        }
    }

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(TSeries);

    return dataset;
}