List of usage examples for org.jfree.data.time TimeSeriesCollection addSeries
public void addSeries(TimeSeries series)
From source file:edu.unibonn.plotting.TimeSeriesPlotter_Sensors.java
private XYDataset createDataset(ArrayList<Cluster_KMeans> clusters, LocalDateTime from) { final TimeSeriesCollection dataset = new TimeSeriesCollection(); for (int i = 0; i < clusters.size(); i++) { Cluster_KMeans current_cluster = clusters.get(i); ArrayList<Sensor> member_time_series = current_cluster.getMembership(); for (Iterator iterator = member_time_series.iterator(); iterator.hasNext();) { final TimeSeries s1 = new TimeSeries("Cluster_" + current_cluster.getCluster_id(), Hour.class); Sensor current_series = (Sensor) iterator.next(); for (int j = 0; j < current_series.getDimensions(); j++) { LocalDateTime current_record_time = current_series.getInitial_record_time().plusHours(j); s1.add(new Hour(current_record_time.getHour(), current_record_time.getDayOfMonth(), current_record_time.getMonthValue(), current_record_time.getYear()), current_series.getMeasurement(j)); }/* w w w. j a v a2 s .c o m*/ dataset.addSeries(s1); } } dataset.setDomainIsPointsInTime(true); return dataset; }
From source file:edu.unibonn.kmeans.mapreduce.plotting.TimeSeriesPlotter_KMeans.java
private XYDataset createDataset(ArrayList<Sensor> sensors) { final TimeSeriesCollection dataset = new TimeSeriesCollection(); for (int i = 0; i < sensors.size(); i++) //for (int i = 0; i < 100; i++) {//from w w w. ja v a2 s . c o m Sensor current_sensor = sensors.get(i); ArrayList<Measurement> current_measurements = current_sensor.getMeasurements(); final TimeSeries s1 = new TimeSeries("Sensor " + i, Hour.class); for (int j = 0; j < current_measurements.size(); j++) { Measurement current_measurement = current_measurements.get(j); LocalDateTime current_time = current_measurement.getRecord_time(); s1.add(new Hour(current_time.getHour(), current_time.getDayOfMonth(), current_time.getMonthValue(), current_time.getYear()), current_measurement.getErlang()); } dataset.addSeries(s1); } dataset.setDomainIsPointsInTime(true); return dataset; }
From source file:org.posterita.businesslogic.performanceanalysis.CustomPOSReportManager.java
public static TimeSeriesChart generateTimeSeriesChart(Properties ctx, String title, String subtitle, int account_id, Timestamp fromDate, Timestamp toDate, String salesGroup, String priceQtyFilter) throws OperationException { TimeSeriesChart timeSeriesChart = new TimeSeriesChart(); timeSeriesChart.setTitle(title);//from w ww. ja va 2 s . co m timeSeriesChart.setSubtitle(subtitle); timeSeriesChart.setShowShapes(true); //timeSeriesChart.getDataSetFromSQL(timeSeriesChartSQL); String timeSeriesChartSQL = SalesAnalysisReportManager.getTimeSeriesDataSetSQL(ctx, account_id, fromDate, toDate, salesGroup); ArrayList<Object[]> list = ReportManager.getReportData(ctx, timeSeriesChartSQL, false); TimeSeriesCollection dataset = new TimeSeriesCollection(); TimeSeries series = null; String yLabel = null; String seriesName = null; String date = null; BigDecimal price = null; String[] s = null; int day, month, year; for (Object[] data : list) { seriesName = (String) data[0]; date = (String) data[1]; price = (BigDecimal) data[2]; s = date.split("-"); if (s.length != 3) throw new OperationException("Unable to generate timeseries. " + "Cause:Invalid date format, the date returned should have the following format 'DD-MM-YYYY'"); SimpleDateFormat sdf = new SimpleDateFormat(); Calendar cal = Calendar.getInstance(); Date d = null; try { sdf.applyPattern("dd-MM-yyyy"); d = sdf.parse(date); } catch (ParseException e1) { try { sdf.applyPattern("dd-MMM-yyyy"); d = sdf.parse(date); } catch (ParseException e) { throw new OperationException("Unable to generate timeseries. " + "Cause:Invalid date format, the date returned should have one of the following formats 'DD-MM-YYYY' or 'DD-MMM-YYYY'", e); } } cal.setTime(d); day = cal.get(Calendar.DATE); month = cal.get(Calendar.MONTH) + 1; year = cal.get(Calendar.YEAR); series = dataset.getSeries(seriesName); if (series == null) { series = new TimeSeries(seriesName, Day.class); series.add(new Day(day, month, year), price); dataset.addSeries(series); } else { series.add(new Day(day, month, year), price); } //if } //for if (priceQtyFilter.equalsIgnoreCase(Constants.PRICE)) { //against price String currency = POSTerminalManager.getDefaultSalesCurrency(ctx).getCurSymbol(); yLabel = "Value (" + currency + ")"; } else { yLabel = "Quantity"; } timeSeriesChart.setYLabel(yLabel); timeSeriesChart.setDataset(dataset); XYPlot plot = (XYPlot) timeSeriesChart.getChart().getPlot(); DateAxis axis = (DateAxis) plot.getDomainAxis(); SimpleDateFormat sdf = new SimpleDateFormat(TimestampConvertor.DEFAULT_DATE_PATTERN1); axis.setRange(fromDate, toDate); //axis.setTickUnit(new DateTickUnit(DateTickUnit.MONTH,1,new SimpleDateFormat("MMM-yyyy"))); timeSeriesChart.getChart().setBackgroundPaint(Color.white); return timeSeriesChart; }
From source file:com.igalia.java.zk.components.JFreeChartEngine.java
/** * transfer a XYModel into JFreeChart TimeSeriesCollection. *///from w ww . j a v a 2s . c om private XYDataset XYModelToTimeDataset(XYModel model, Chart chart) { TimeZone tz = chart.getTimeZone(); if (tz == null) tz = TimeZones.getCurrent(); String p = chart.getPeriod(); if (p == null) p = Chart.MILLISECOND; Class pclass = (Class) _periodMap.get(p); if (pclass == null) { throw new UiException("Unsupported period for Time Series chart: " + p); } final TimeSeriesCollection dataset = new TimeSeriesCollection(tz); for (final Iterator it = model.getSeries().iterator(); it.hasNext();) { final Comparable series = (Comparable) it.next(); final org.jfree.data.time.TimeSeries tser = new org.jfree.data.time.TimeSeries(series); //new org.jfree.data.time.TimeSeries(series, pclass); //deprecated since JFreeChart 10.0.13 final int size = model.getDataCount(series); for (int j = 0; j < size; ++j) { final RegularTimePeriod period = RegularTimePeriod.createInstance(pclass, new Date(model.getX(series, j).longValue()), tz); tser.addOrUpdate(period, model.getY(series, j)); } dataset.addSeries(tser); } return dataset; }
From source file:org.griphyn.vdl.karajan.monitor.monitors.swing.GraphPanel.java
private void addSeries(Series<?> series) { Unit unit = series.getUnit();//from w w w.ja va 2s .c o m XYPlot plot = chart.getXYPlot(); Integer datasetIndex = datasetMapping.get(unit); TimeSeriesCollection col; if (datasetIndex == null) { col = new TimeSeriesCollection(); int nextIndex = getNextDatasetIndex(plot); datasetMapping.put(unit, nextIndex); plot.setDataset(nextIndex, col); plot.setRenderer(nextIndex, new XYLineAndShapeRenderer(true, false)); NumberAxis axis = new AutoNumberAxis(unit); plot.setRangeAxis(nextIndex, axis); plot.mapDatasetToRangeAxis(nextIndex, nextIndex); seriesMapping.put(unit, new ArrayList<String>()); } else { col = (TimeSeriesCollection) plot.getDataset(datasetIndex); } TimeSeries ts = new SeriesWrapper(series, sampler); seriesMapping.get(unit).add(series.getKey()); col.addSeries(ts); setColor(series.getKey(), palette.allocate()); }
From source file:org.apache.phoenix.pherf.result.impl.ImageResultHandler.java
@Override public synchronized void write(Result result) throws Exception { TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(); int rowCount = 0; int maxLegendCount = 20; int chartDimension = 1100; ResultValue<DataModelResult> resultValue = result.getResultValues().get(0); DataModelResult dataModelResult = resultValue.getResultValue(); for (ScenarioResult scenarioResult : dataModelResult.getScenarioResult()) { for (QuerySetResult querySetResult : scenarioResult.getQuerySetResult()) { for (QueryResult queryResult : querySetResult.getQueryResults()) { for (ThreadTime tt : queryResult.getThreadTimes()) { TimeSeries timeSeries = new TimeSeries( queryResult.getStatement() + " :: " + tt.getThreadName()); rowCount++;//from ww w .ja v a2 s . c o m synchronized (tt.getRunTimesInMs()) { for (RunTime rt : tt.getRunTimesInMs()) { if (rt.getStartTime() != null) { timeSeries.add(new Millisecond(rt.getStartTime()), rt.getElapsedDurationInMs()); } } } timeSeriesCollection.addSeries(timeSeries); } } } } boolean legend = rowCount > maxLegendCount ? false : true; JFreeChart chart = ChartFactory.createTimeSeriesChart(dataModelResult.getName(), "Time", "Query Time (ms)", timeSeriesCollection, legend, true, false); StandardXYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES_AND_LINES); chart.getXYPlot().setRenderer(renderer); chart.getXYPlot().setBackgroundPaint(Color.WHITE); chart.getXYPlot().setRangeGridlinePaint(Color.BLACK); for (int i = 0; i < rowCount; i++) { chart.getXYPlot().getRenderer().setSeriesStroke(i, new BasicStroke(3f)); } try { ChartUtilities.saveChartAsJPEG(new File(resultFileName), chart, chartDimension, chartDimension); } catch (IOException e) { e.printStackTrace(); } }
From source file:org.jivesoftware.openfire.reporting.graph.GraphEngine.java
private XYDataset populateData(String key, Statistic[] def, long startTime, long endTime, int dataPoints) { double[][] values = statsViewer.getData(key, startTime, endTime, dataPoints); long timePeriod = endTime - startTime; TimeSeries[] series = new TimeSeries[values.length]; TimeSeriesCollection dataSet = new TimeSeriesCollection(); for (int d = 0; d < values.length; d++) { series[d] = new TimeSeries(def[d].getName(), getTimePeriodClass(timePeriod)); Statistic.Type type = def[d].getStatType(); long interval = timePeriod / values[d].length; for (int i = 0; i < values[d].length; i++) { series[d].addOrUpdate(// w ww .j a v a 2 s . com getTimePeriod(timePeriod, new Date(startTime + (i * interval)), JiveGlobals.getTimeZone()), cleanData(type, values[d][i])); } dataSet.addSeries(series[d]); } return dataSet; }
From source file:ucar.unidata.idv.control.chart.TimeSeriesChart.java
/** * Add the series/* ww w . j a v a 2 s . com*/ * * * @param series The data * @param lineState describes how to draw the line * @param paramIdx which parameter * @param renderer renderer * @param rangeVisible do we show range axis * @param addAxis include the axis * * @return the newly created range axis */ protected Axis addSeries(TimeSeries series, LineState lineState, int paramIdx, XYItemRenderer renderer, boolean rangeVisible, boolean addAxis) { if (series instanceof MyTimeSeries) { ((MyTimeSeries) series).finish(); } if (addAxis && (lineState.getRange() != null)) { addRange(lineState.getRange().getMin(), lineState.getRange().getMax(), "Fixed range from: " + lineState.getName()); } if (numberFormat == null) { numberFormat = new DecimalFormat() { public StringBuffer format(double number, StringBuffer result, FieldPosition fieldPosition) { String s = control.getDisplayConventions().format(number); result.append(s); return result; } }; } String name = lineState.getName(); Unit unit = lineState.unit; TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.setDomainIsPointsInTime(true); dataset.addSeries(series); String axisLabel = lineState.getAxisLabel(); if (axisLabel == null) { axisLabel = name + ((unit != null) ? " [" + unit + "]" : ""); } NumberAxis rangeAxis; if (lineState.getUseLogarithmicRange() && false) { rangeAxis = new FixedWidthLogarithmicAxis(axisLabel); } else { rangeAxis = new FixedWidthNumberAxis(axisLabel); ((NumberAxis) rangeAxis).setAutoRangeIncludesZero(lineState.getRangeIncludesZero()); } //For now lets use the default number formatting for the range // rangeAxis.setNumberFormatOverride(numberFormat); rangeAxis.setVisible(rangeVisible); ucar.unidata.util.Range r = lineState.getRange(); if (r != null) { rangeAxis.setRange(new org.jfree.data.Range(r.getMin(), r.getMax())); } if (renderer == null) { renderer = getRenderer(lineState, addAxis); } Paint c = lineState.getColor(paramIdx); rangeAxis.setLabelPaint(Color.black); renderer.setSeriesPaint(0, c); renderer.setSeriesStroke(0, lineState.getStroke()); renderer.setSeriesVisibleInLegend(0, lineState.getVisibleInLegend()); if (!lineState.getAxisVisible()) { rangeAxis.setVisible(false); } else { rangeAxis.setVisible(addAxis); } ChartHolder chartHolder = getChartHolder(lineState); AxisLocation side = null; if (rangeAxis.isVisible()) { if (lineState.getSide() == LineState.SIDE_UNDEFINED) { if (chartHolder.lastSide == AxisLocation.TOP_OR_LEFT) { side = AxisLocation.BOTTOM_OR_RIGHT; } else { side = AxisLocation.TOP_OR_LEFT; } } else if (lineState.getSide() == LineState.SIDE_LEFT) { side = AxisLocation.TOP_OR_LEFT; } else { side = AxisLocation.BOTTOM_OR_RIGHT; } chartHolder.lastSide = side; } synchronized (MUTEX) { chartHolder.add(dataset, rangeAxis, renderer, side); } return rangeAxis; }
From source file:org.zaproxy.zap.extension.customFire.ScanProgressDialog.java
/** * //from ww w .j a v a 2s .com */ private void initialize() { this.setSize(new Dimension(580, 504)); if (site != null) { this.setTitle("Scann Progress"); } JTabbedPane tabbedPane = new JTabbedPane(); JPanel tab1 = new JPanel(); tab1.setLayout(new GridBagLayout()); JPanel hostPanel = new JPanel(); hostPanel.setLayout(new GridBagLayout()); hostPanel.add(new JLabel("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("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("1xx"); this.series200 = new TimeSeries("2xx"); this.series300 = new TimeSeries("3xx"); this.series400 = new TimeSeries("4xx"); this.series500 = new TimeSeries("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.ORANGE); // 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.YELLOW); // 400: Bad req chart.getXYPlot().getRenderer(0).setSeriesPaint(5, Color.RED); // 500: Internal error chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(5.0f)); // Totals chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 100: Info chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 200: OK chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 300: Info chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 400: Bad req chart.getXYPlot().getRenderer(0).setSeriesStroke(0, new BasicStroke(3.0f)); // 500: Internal error final ChartPanel chartPanel = new ChartPanel(chart); tab2.add(chartPanel, LayoutHelper.getGBC(0, 0, 1, 1.0D, 1.0D)); tabbedPane.insertTab("ResponseCharts", 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:org.tolven.web.MenuAction.java
/** * Creates a dataset from menuData./* w ww . j a v a2s .c o m*/ * * @return An XY dataset */ public XYDataset createDataset3(String path) { // Adjust the path to make this work MenuStructure msLab = getMenuLocal().findMenuStructure(getAccountId(), path); if (msLab == null) throw new IllegalArgumentException("Path not valid for this account"); // Create a new path based on the matching id(s) from the called path // for example, if patient were specified in the input nodeValues and the new path has a patient node, then // it's pulled. MenuPath mdPath = new MenuPath(msLab.getPath(), getTargetMenuPath()); // TolvenLogger.info("dataset: Query from " + msLab.getPath() + " for requested path: " + getTargetMenuPath(), MenuAction.class); MenuQueryControl ctrl = new MenuQueryControl(); ctrl.setLimit(5000); // TODO: This is a hard coded hard query limit that should be in a property or something ctrl.setMenuStructure(msLab); ctrl.setAccountUser(TolvenRequest.getInstance().getAccountUser()); ctrl.setNow(getNow()); ctrl.setOffset(0); ctrl.setOriginalTargetPath(mdPath); ctrl.setRequestedPath(mdPath); List<MenuData> menuData = getMenuLocal().findMenuData(ctrl); TimeSeries s1 = new TimeSeries("Peak Flow", TolvenHour.class); for (MenuData md : menuData) { TimeSeries sx; // TolvenLogger.info("MD Item: " + md.getId(), MenuAction.class); String result = md.getString01().toLowerCase(); if ("peak flow".equals(result) || "peakflow".equals(result)) { sx = s1; } else continue; Hour d = new TolvenHour(md.getDate01()); // TolvenLogger.info( "Graph Data: " + m.getMonth() + "/" + m.getYear() + "=" + md.getPqValue01(), MenuAction.class); TimeSeriesDataItem di = sx.getDataItem(d); if (di != null) TolvenLogger.info( "Date: " + di.getPeriod() + " replacing " + di.getValue() + " with " + md.getPqValue01(), MenuAction.class); sx.addOrUpdate(d, md.getPqValue01()); } TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(s1); // dataset.setDomainIsPointsInTime(true); TolvenLogger.info("Done preparing Dataset", MenuAction.class); return dataset; }