List of usage examples for org.jfree.data.time TimeSeriesCollection addSeries
public void addSeries(TimeSeries series)
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; }