List of usage examples for org.jfree.data.time TimeSeries TimeSeries
public TimeSeries(Comparable name, Class timePeriodClass)
From source file:org.posterita.core.TimeSeriesChart.java
public void getTimeSeriesFromSQL(String sql, String key) throws OperationException { PreparedStatement pstmt = DB.prepareStatement(sql, null); ArrayList<Object[]> dataSource = ReportManager.getReportData(pstmt); TimeSeries series = new TimeSeries(key, Day.class); int count = 0; for (Object[] data : dataSource) { if (data.length != 2) throw new OperationException( "Unable to generate timeseries. Cause:Invalid sql, the return resultset must have 2 columns only"); count++;//from www .ja va 2 s . c o m if (count == 1) continue; series.add(new Day((Date) data[0]), (BigDecimal) data[1]); } pstmt = null; addSeries(series); }
From source file:de.tsystems.mms.apm.performancesignature.PerfSigBuildActionResultsDisplay.java
private XYDataset buildTimeSeriesDataSet(final StaplerRequest request) { final String measure = request.getParameter(Messages.PerfSigBuildActionResultsDisplay_ReqParamMeasure()); final String chartDashlet = request .getParameter(Messages.PerfSigBuildActionResultsDisplay_ReqParamChartDashlet()); final String testCase = request.getParameter(Messages.PerfSigBuildActionResultsDisplay_ReqParamTestCase()); final TimeSeries timeSeries = new TimeSeries(chartDashlet, Second.class); final DashboardReport dashboardReport = getDashBoardReport(testCase); final Measure m = dashboardReport.getMeasure(chartDashlet, measure); if (m == null || m.getMeasurements() == null) return null; for (Measurement measurement : m.getMeasurements()) { timeSeries.add(new Second(new Date(measurement.getTimestamp())), measurement.getMetricValue(m.getAggregation())); }/*from w w w. jav a 2s.c om*/ return new TimeSeriesCollection(timeSeries); }
From source file:dpnm.netmsuite.plc.manager.frontend.graph.TimeSeriesChartDemo1.java
/** * Creates a dataset, consisting of two series of monthly data. * @return The dataset./*from w ww . ja v a 2 s . c o m*/ */ private XYDataset createDataset() { /* * each 5 seconds, the data updated... * */ String firstGraph = ""; String secondGraph = ""; if (graphType == 1) { firstGraph = "InPackets"; secondGraph = "OutPackets"; TimeSeries s1 = new TimeSeries(firstGraph, Second.class); for (int i = 1; i < statisticInfos.size(); i++) { StatisticInfo pastInfo = (StatisticInfo) statisticInfos.elementAt(i - 1); StatisticInfo oneInfo = (StatisticInfo) statisticInfos.elementAt(i); long timeStamp = oneInfo._timeStamp; long gap = (oneInfo._timeStamp - pastInfo._timeStamp) / 1000; gap = gap == 0 ? 1 : gap; Date date = new Date(timeStamp); long inPkts = oneInfo._inPkts - pastInfo._inPkts; if (inPkts < 0) { pastInfo._inPkts = oneInfo._inPkts + 2 ^ 32 - pastInfo._inPkts; } inPkts = inPkts / gap; s1.add(new Second(date), inPkts); } TimeSeries s2 = new TimeSeries(secondGraph, Second.class); for (int i = 1; i < statisticInfos.size(); i++) { StatisticInfo pastInfo = (StatisticInfo) statisticInfos.elementAt(i - 1); StatisticInfo oneInfo = (StatisticInfo) statisticInfos.elementAt(i); long timeStamp = oneInfo._timeStamp; long gap = (oneInfo._timeStamp - pastInfo._timeStamp) / 1000; gap = gap == 0 ? 1 : gap; Date date = new Date(timeStamp); long outPkts = oneInfo._outPkts - pastInfo._outPkts; if (outPkts < 0) { pastInfo._outPkts = oneInfo._outPkts + 2 ^ 32 - pastInfo._outPkts; } outPkts = outPkts / gap; s2.add(new Second(date), outPkts); } TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(s1); dataset.addSeries(s2); dataset.setDomainIsPointsInTime(true); return dataset; } else if (graphType == 2) { firstGraph = "InBytes"; secondGraph = "OutBytes"; TimeSeries s1 = new TimeSeries(firstGraph, Second.class); for (int i = 1; i < statisticInfos.size(); i++) { StatisticInfo pastInfo = (StatisticInfo) statisticInfos.elementAt(i - 1); StatisticInfo oneInfo = (StatisticInfo) statisticInfos.elementAt(i); long timeStamp = oneInfo._timeStamp; long gap = (oneInfo._timeStamp - pastInfo._timeStamp) / 1000; gap = gap == 0 ? 1 : gap; Date date = new Date(timeStamp); long _inBytes = oneInfo._inBytes - pastInfo._inBytes; if (_inBytes < 0) { pastInfo._inBytes = oneInfo._inBytes + 2 ^ 32 - pastInfo._inBytes; } _inBytes = _inBytes / gap; s1.add(new Second(date), _inBytes); } TimeSeries s2 = new TimeSeries(secondGraph, Second.class); for (int i = 1; i < statisticInfos.size(); i++) { StatisticInfo pastInfo = (StatisticInfo) statisticInfos.elementAt(i - 1); StatisticInfo oneInfo = (StatisticInfo) statisticInfos.elementAt(i); long timeStamp = oneInfo._timeStamp; long gap = (oneInfo._timeStamp - pastInfo._timeStamp) / 1000; gap = gap == 0 ? 1 : gap; Date date = new Date(timeStamp); long _outBytes = oneInfo._outBytes - pastInfo._outBytes; if (_outBytes < 0) { pastInfo._outBytes = oneInfo._outBytes + 2 ^ 32 - pastInfo._outBytes; } _outBytes = _outBytes / gap; s2.add(new Second(date), _outBytes); } TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(s1); dataset.addSeries(s2); dataset.setDomainIsPointsInTime(true); return dataset; } else if (graphType == 3) { firstGraph = "InSpeed"; secondGraph = "OutSpeed"; TimeSeries s1 = new TimeSeries(firstGraph, Second.class); for (int i = 1; i < statisticInfos.size(); i++) { StatisticInfo pastInfo = (StatisticInfo) statisticInfos.elementAt(i - 1); StatisticInfo oneInfo = (StatisticInfo) statisticInfos.elementAt(i); long timeStamp = oneInfo._timeStamp; Date date = new Date(timeStamp); long _inSpeed = oneInfo._inSpeed; s1.add(new Second(date), _inSpeed); } TimeSeries s2 = new TimeSeries(secondGraph, Second.class); for (int i = 1; i < statisticInfos.size(); i++) { StatisticInfo pastInfo = (StatisticInfo) statisticInfos.elementAt(i - 1); StatisticInfo oneInfo = (StatisticInfo) statisticInfos.elementAt(i); long timeStamp = oneInfo._timeStamp; Date date = new Date(timeStamp); long _outSpeed = oneInfo._outSpeed; s2.add(new Second(date), _outSpeed); } TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(s1); dataset.addSeries(s2); dataset.setDomainIsPointsInTime(true); return dataset; } else { firstGraph = "Not Defiend"; secondGraph = "Not Defiend"; return null; } }
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(//from w w w . j a v a 2 s .c o m getTimePeriod(timePeriod, new Date(startTime + (i * interval)), JiveGlobals.getTimeZone()), cleanData(type, values[d][i])); } dataSet.addSeries(series[d]); } return dataSet; }
From source file:org.openmrs.web.controller.ConceptStatsFormController.java
/** * Called prior to form display. Allows for data to be put in the request to be used in the view * * @see org.springframework.web.servlet.mvc.SimpleFormController#referenceData(javax.servlet.http.HttpServletRequest) *//*w ww .ja v a2s . co m*/ protected Map<String, Object> referenceData(HttpServletRequest request) throws Exception { Map<String, Object> map = new HashMap<String, Object>(); if (!Context.hasPrivilege("View Observations")) { return map; } MessageSourceAccessor msa = getMessageSourceAccessor(); Locale locale = Context.getLocale(); ConceptService cs = Context.getConceptService(); String conceptId = request.getParameter("conceptId"); //List<Obs> obs = new Vector<Obs>(); //List<Obs> obsAnswered = new Vector<Obs>(); if (conceptId != null) { Concept concept = cs.getConcept(Integer.valueOf(conceptId)); ObsService obsService = Context.getObsService(); if (concept != null) { // previous/next ids for links map.put("previousConcept", cs.getPrevConcept(concept)); map.put("nextConcept", cs.getNextConcept(concept)); //obs = obsService.getObservations(concept, "valueNumeric, obsId"); //obsAnswered = obsService.getObservationsAnsweredByConcept(concept); if (ConceptDatatype.NUMERIC.equals(concept.getDatatype().getHl7Abbreviation())) { map.put("displayType", "numeric"); List<Obs> numericAnswers = obsService.getObservations(null, null, Collections.singletonList(concept), null, Collections.singletonList(OpenmrsConstants.PERSON_TYPE.PERSON), null, Collections.singletonList("valueNumeric"), null, null, null, null, false); if (numericAnswers.size() > 0) { Double min = numericAnswers.get(0).getValueNumeric(); Double max = (Double) numericAnswers.get(numericAnswers.size() - 1).getValueNumeric(); Double median = (Double) numericAnswers.get(numericAnswers.size() / 2).getValueNumeric(); Map<Double, Integer> counts = new HashMap<Double, Integer>(); // counts for the histogram Double total = 0.0; // sum of values. used for mean // dataset setup for lineChart TimeSeries timeSeries = new TimeSeries(concept.getName().getName(), Day.class); TimeSeriesCollection timeDataset = new TimeSeriesCollection(); Calendar calendar = Calendar.getInstance(); // array for histogram double[] obsNumerics = new double[(numericAnswers.size())]; Integer i = 0; for (Obs obs : numericAnswers) { Date date = (Date) obs.getObsDatetime(); Double value = (Double) obs.getValueNumeric(); // for mean calculation total += value; // for histogram obsNumerics[i++] = value; Integer count = counts.get(value); counts.put(value, count == null ? 1 : count + 1); // for line chart calendar.setTime(date); Day day = new Day(calendar.get(Calendar.DAY_OF_MONTH), calendar.get(Calendar.MONTH) + 1, // January = 0 calendar.get(Calendar.YEAR) < 1900 ? 1900 : calendar.get(Calendar.YEAR) // jfree chart doesn't like the 19th century ); timeSeries.addOrUpdate(day, value); } Double size = new Double(numericAnswers.size()); Double mean = total / size; map.put("size", numericAnswers.size()); map.put("min", min); map.put("max", max); map.put("mean", mean); map.put("median", median); // create histogram chart HistogramDataset histDataset = new HistogramDataset(); // dataset for histogram histDataset.addSeries(concept.getName().getName(), obsNumerics, counts.size()); JFreeChart histogram = ChartFactory.createHistogram(concept.getName().getName(), msa.getMessage("Concept.stats.histogramDomainAxisTitle"), msa.getMessage("Concept.stats.histogramRangeAxisTitle"), histDataset, PlotOrientation.VERTICAL, false, true, false); map.put("histogram", histogram); if (size > 25) { // calculate 98th percentile of the data: Double x = 0.98; Integer xpercentile = (int) (x * size); Double upperQuartile = numericAnswers.get(xpercentile).getValueNumeric(); Double lowerQuartile = numericAnswers.get((int) (size - xpercentile)).getValueNumeric(); Double innerQuartile = upperQuartile - lowerQuartile; Double innerQuartileLimit = innerQuartile * 1.5; // outliers will be greater than this from the upper/lower quartile Double upperQuartileLimit = upperQuartile + innerQuartileLimit; Double lowerQuartileLimit = lowerQuartile - innerQuartileLimit; List<Obs> outliers = new Vector<Obs>(); // move outliers to the outliers list // removing lower quartile outliers for (i = 0; i < size - xpercentile; i++) { Obs possibleOutlier = numericAnswers.get(i); if (possibleOutlier.getValueNumeric() >= lowerQuartileLimit) { break; // quit if this value is greater than the lower limit } outliers.add(possibleOutlier); } // removing upper quartile outliers for (i = size.intValue() - 1; i >= xpercentile; i--) { Obs possibleOutlier = numericAnswers.get(i); if (possibleOutlier.getValueNumeric() <= upperQuartileLimit) { break; // quit if this value is less than the upper limit } outliers.add(possibleOutlier); } numericAnswers.removeAll(outliers); double[] obsNumericsOutliers = new double[(numericAnswers.size())]; i = 0; counts.clear(); for (Obs values : numericAnswers) { Double value = values.getValueNumeric(); obsNumericsOutliers[i++] = value; Integer count = counts.get(value); counts.put(value, count == null ? 1 : count + 1); } // create outlier histogram chart HistogramDataset outlierHistDataset = new HistogramDataset(); outlierHistDataset.addSeries(concept.getName().getName(), obsNumericsOutliers, counts.size()); JFreeChart histogramOutliers = ChartFactory.createHistogram(concept.getName().getName(), msa.getMessage("Concept.stats.histogramDomainAxisTitle"), msa.getMessage("Concept.stats.histogramRangeAxisTitle"), outlierHistDataset, PlotOrientation.VERTICAL, false, true, false); map.put("histogramOutliers", histogramOutliers); map.put("outliers", outliers); } // create line graph chart timeDataset.addSeries(timeSeries); JFreeChart lineChart = ChartFactory.createTimeSeriesChart(concept.getName().getName(), msa.getMessage("Concept.stats.lineChartDomainAxisLabel"), msa.getMessage("Concept.stats.lineChartRangeAxisLabel"), timeDataset, false, true, false); map.put("timeSeries", lineChart); } } else if (ConceptDatatype.BOOLEAN.equals(concept.getDatatype().getHl7Abbreviation())) { // create bar chart for boolean answers map.put("displayType", "boolean"); List<Obs> obs = obsService.getObservations(null, null, Collections.singletonList(concept), null, Collections.singletonList(OpenmrsConstants.PERSON_TYPE.PERSON), null, null, null, null, null, null, false); DefaultPieDataset pieDataset = new DefaultPieDataset(); // count the number of unique answers Map<String, Integer> counts = new HashMap<String, Integer>(); for (Obs o : obs) { Boolean answer = o.getValueAsBoolean(); if (answer == null) { answer = false; } String name = answer.toString(); Integer count = counts.get(name); counts.put(name, count == null ? 1 : count + 1); } // put the counts into the dataset for (Map.Entry<String, Integer> entry : counts.entrySet()) { pieDataset.setValue(entry.getKey(), entry.getValue()); } JFreeChart pieChart = ChartFactory.createPieChart(concept.getName().getName(), pieDataset, true, true, false); map.put("pieChart", pieChart); } else if (ConceptDatatype.CODED.equals(concept.getDatatype().getHl7Abbreviation())) { // create pie graph for coded answers map.put("displayType", "coded"); List<Obs> obs = obsService.getObservations(null, null, Collections.singletonList(concept), null, Collections.singletonList(OpenmrsConstants.PERSON_TYPE.PERSON), null, null, null, null, null, null, false); DefaultPieDataset pieDataset = new DefaultPieDataset(); // count the number of unique answers Map<String, Integer> counts = new HashMap<String, Integer>(); for (Obs o : obs) { Concept value = o.getValueCoded(); String name; if (value == null) { name = "[value_coded is null]"; } else { name = value.getName().getName(); } Integer count = counts.get(name); counts.put(name, count == null ? 1 : count + 1); } // put the counts into the dataset for (Map.Entry<String, Integer> entry : counts.entrySet()) { pieDataset.setValue(entry.getKey(), entry.getValue()); } JFreeChart pieChart = ChartFactory.createPieChart(concept.getName().getName(), pieDataset, true, true, false); map.put("pieChart", pieChart); } } } //map.put("obs", obs); //map.put("obsAnswered", obsAnswered); map.put("locale", locale.getLanguage().substring(0, 2)); return map; }
From source file:org.n52.oxf.render.sos.TimeSeriesChartRenderer4xPhenomenons.java
protected TimeSeriesCollection createDataset(String[] foiIdArray, ObservationSeriesCollection tuples4FOI, int observedPropertyIndex) { TimeSeriesCollection dataset = new TimeSeriesCollection(); for (String featureID : foiIdArray) { Map<ITimePosition, ObservedValueTuple> tupleMap = tuples4FOI.getAllTuples(featureID); if (tupleMap != null) { // for each selected <feature,observedPropertyIndex> pair construct a new TimeSeries: TimeSeries timeSeries = new TimeSeries( featureID + "___" + this.observedProperties[observedPropertyIndex], Second.class); for (ITimePosition timePos : tupleMap.keySet()) { ObservedValueTuple tuple = tupleMap.get(timePos); Number result = (Number) tuple.getValue(observedPropertyIndex); timeSeries.add(new Second(new Float(timePos.getSecond()).intValue(), timePos.getMinute(), timePos.getHour(), timePos.getDay(), timePos.getMonth(), new Long(timePos.getYear()).intValue()), result); }//from ww w .j a v a2 s .c o m dataset.addSeries(timeSeries); } } dataset.setDomainIsPointsInTime(true); return dataset; }
From source file:com.devoteam.srit.xmlloader.core.report.derived.DerivedCounter.java
public JFreeChart getTimeChart() { double[] graphTable = this.counter.graphDataset.getGraphArray(); double[] weightTable = null; if (this instanceof StatValue) { weightTable = ((StatValue) this).eventCounter.graphDataset.getGraphArray(); }/*from www . jav a 2 s . com*/ TimeSeries timeSeries = new TimeSeries("", FixedMillisecond.class); double hits = 0; long offset; boolean absoluteDate = Config.getConfigByName("tester.properties").getBoolean("stats.CHARTS_ABSOLUTE_DATE", false); if (absoluteDate) { offset = reportZeroTimestamp; } else { offset = 0; } for (int i = 0; i < graphTable.length; i++) { long timestamp = offset + i * this.counter.graphDataset.graphParameters.graphPeriod; timeSeries.add(new FixedMillisecond(timestamp), graphTable[i], false); } JFreeChart chart = ChartFactory.createXYAreaChart(null, // chart title null, // domain axis label null, // range axis label new TimeSeriesCollection(timeSeries), // data PlotOrientation.VERTICAL, // orientation false, // include legend false, // tooltips false // urls ); if (null != mean && null != std_dv) { chart.getXYPlot().addRangeMarker(new ValueMarker(mean)); IntervalMarker intervalMarker = new IntervalMarker(mean - std_dv / 2, mean + std_dv / 2); intervalMarker.setAlpha(0.3f); chart.getXYPlot().addRangeMarker(intervalMarker); } chart.getXYPlot().setDomainAxis(new DateAxis()); DateAxis axis = (DateAxis) chart.getXYPlot().getDomainAxis(); DateFormat dateFormat; if (absoluteDate) { dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss"); axis.setVerticalTickLabels(true); } else { dateFormat = new SimpleDateFormat("HH:mm:ss"); dateFormat.setTimeZone(new SimpleTimeZone(0, "GMT")); } axis.setDateFormatOverride(dateFormat); chart.setBackgroundPaint(Color.WHITE); return chart; }
From source file:org.activequant.util.charting.Chart.java
/** * method to add a dot chart./*from w w w. ja va2s. c om*/ * @param title * @param dateAndValues */ public void addDotSeriesChart(String title, List<Tuple<TimeStamp, Double>> dateAndValues) { if (chart != null) { // final TimeSeries ts = new TimeSeries(title, Millisecond.class); for (Tuple<TimeStamp, Double> tuple : dateAndValues) { // TimeSeriesDataItem item = new TimeSeriesDataItem(new Millisecond(tuple.getObject1().getDate()), tuple.getObject2()); ts.addOrUpdate(item.getPeriod(), item.getValue()); } datasets.add(ts); final TimeSeriesCollection dataset = new TimeSeriesCollection(ts); final XYPlot plot1 = chart.getXYPlot(); final XYLineAndShapeRenderer renderer = new XYLineAndShapeRenderer(); renderer.setShapesVisible(true); renderer.setLinesVisible(false); plot1.setDataset(datasets.size(), dataset); plot1.setRenderer(datasets.size(), renderer); } }
From source file:org.jfree.chart.demo.CombinedXYPlotDemo2.java
/** * Creates a sample dataset.// w w w. j av a 2s.co m * * @return Series 2. */ private XYDataset createDataset2() { // create dataset 2... final TimeSeries series2 = new TimeSeries("Series 2", Day.class); series2.add(new Day(3, SerialDate.MARCH, 2002), 16853.2); series2.add(new Day(4, SerialDate.MARCH, 2002), 19642.3); series2.add(new Day(5, SerialDate.MARCH, 2002), 18253.5); series2.add(new Day(6, SerialDate.MARCH, 2002), 15352.3); series2.add(new Day(7, SerialDate.MARCH, 2002), 13532.0); series2.add(new Day(8, SerialDate.MARCH, 2002), 12635.3); series2.add(new Day(9, SerialDate.MARCH, 2002), 13998.2); series2.add(new Day(10, SerialDate.MARCH, 2002), 11943.2); series2.add(new Day(11, SerialDate.MARCH, 2002), 16943.9); series2.add(new Day(12, SerialDate.MARCH, 2002), 17843.2); series2.add(new Day(13, SerialDate.MARCH, 2002), 16495.3); series2.add(new Day(14, SerialDate.MARCH, 2002), 17943.6); series2.add(new Day(15, SerialDate.MARCH, 2002), 18500.7); series2.add(new Day(16, SerialDate.MARCH, 2002), 19595.9); return new TimeSeriesCollection(series2); }
From source file:org.jfree.chart.demo.OverlaidXYPlotDemo.java
/** * Creates a sample dataset.//from ww w. j a v a 2 s .c om * * @return The dataset. */ private XYDataset createDataset2() { // create dataset 2... final TimeSeries series2 = new TimeSeries("Series 2", Day.class); series2.add(new Day(3, SerialDate.MARCH, 2002), 16853.2); series2.add(new Day(4, SerialDate.MARCH, 2002), 19642.3); series2.add(new Day(5, SerialDate.MARCH, 2002), 18253.5); series2.add(new Day(6, SerialDate.MARCH, 2002), 15352.3); series2.add(new Day(7, SerialDate.MARCH, 2002), 13532.0); series2.add(new Day(8, SerialDate.MARCH, 2002), 12635.3); series2.add(new Day(9, SerialDate.MARCH, 2002), 13998.2); series2.add(new Day(10, SerialDate.MARCH, 2002), 11943.2); series2.add(new Day(11, SerialDate.MARCH, 2002), 16943.9); series2.add(new Day(12, SerialDate.MARCH, 2002), 17843.2); series2.add(new Day(13, SerialDate.MARCH, 2002), 16495.3); series2.add(new Day(14, SerialDate.MARCH, 2002), 17943.6); series2.add(new Day(15, SerialDate.MARCH, 2002), 18500.7); series2.add(new Day(16, SerialDate.MARCH, 2002), 19595.9); final TimeSeriesCollection tsc = new TimeSeriesCollection(series2); return tsc; }