List of usage examples for org.jfree.data.time TimeSeriesCollection TimeSeriesCollection
public TimeSeriesCollection()
From source file:de.tor.tribes.ui.views.DSWorkbenchStatsFrame.java
public void updateChart(List<TribeStatsElement> pElems) { chart = null;/*from w w w .java 2s . com*/ startPointer = null; endPointer = null; int idx = jViewSelectionBox.getSelectedIndex(); if (idx == 0) { TimeSeriesCollection pointsDataset = new TimeSeriesCollection(); for (TribeStatsElement elem : pElems) { TimeSeries pointSeries = new TimeSeries("Punkte (" + elem.getTribe().getName() + ")"); // TimeSeries pointSeries2 = new TimeSeries("Punkte2 (" + elem.getTribe().getName() + ")"); Long[] timestamps = elem.getTimestamps(); Long[] points = elem.getPoints(); for (int i = 0; i < timestamps.length; i++) { pointSeries.add(new Second(new Date(timestamps[i])), points[i]); } pointsDataset.addSeries(pointSeries); } addDataset("Punkte", pointsDataset); } else if (idx == 1) { TimeSeriesCollection rankDataset = new TimeSeriesCollection(); for (TribeStatsElement elem : pElems) { TimeSeries rankSeries = new TimeSeries("Rang (" + elem.getTribe().getName() + ")"); Long[] timestamps = elem.getTimestamps(); Integer[] ranks = elem.getRanks(); for (int i = 0; i < timestamps.length; i++) { rankSeries.add(new Second(new Date(timestamps[i])), ranks[i]); } rankDataset.addSeries(rankSeries); } addDataset("Rang", rankDataset); } else if (idx == 2) { TimeSeriesCollection villageDataset = new TimeSeriesCollection(); for (TribeStatsElement elem : pElems) { TimeSeries villageSeries = new TimeSeries("Drfer (" + elem.getTribe().getName() + ")"); Long[] timestamps = elem.getTimestamps(); Short[] villages = elem.getVillages(); for (int i = 0; i < timestamps.length; i++) { villageSeries.add(new Second(new Date(timestamps[i])), villages[i]); } villageDataset.addSeries(villageSeries); } addDataset("Drfer", villageDataset); } else if (idx == 3) { TimeSeriesCollection killsOffDataset = new TimeSeriesCollection(); for (TribeStatsElement elem : pElems) { TimeSeries bashOffSeries = new TimeSeries("Kills (Off) (" + elem.getTribe().getName() + ")"); Long[] timestamps = elem.getTimestamps(); Long[] bashOff = elem.getBashOffPoints(); for (int i = 0; i < timestamps.length; i++) { bashOffSeries.add(new Second(new Date(timestamps[i])), bashOff[i]); } killsOffDataset.addSeries(bashOffSeries); } addDataset("Kills (Off)", killsOffDataset); } else if (idx == 4) { TimeSeriesCollection rankOffDataset = new TimeSeriesCollection(); for (TribeStatsElement elem : pElems) { TimeSeries rankOffSeries = new TimeSeries("Rang (Off) (" + elem.getTribe().getName() + ")"); Long[] timestamps = elem.getTimestamps(); Short[] rankOff = elem.getBashOffRank(); for (int i = 0; i < timestamps.length; i++) { rankOffSeries.add(new Second(new Date(timestamps[i])), rankOff[i]); } rankOffDataset.addSeries(rankOffSeries); } addDataset("Rang (Off)", rankOffDataset); } else if (idx == 5) { TimeSeriesCollection killsDefDataset = new TimeSeriesCollection(); for (TribeStatsElement elem : pElems) { TimeSeries bashDefSeries = new TimeSeries("Kills (Def) (" + elem.getTribe().getName() + ")"); Long[] timestamps = elem.getTimestamps(); Long[] bashDef = elem.getBashDefPoints(); for (int i = 0; i < timestamps.length; i++) { bashDefSeries.add(new Second(new Date(timestamps[i])), bashDef[i]); } killsDefDataset.addSeries(bashDefSeries); } addDataset("Kills (Def)", killsDefDataset); } else if (idx == 6) { TimeSeriesCollection rankDefDataset = new TimeSeriesCollection(); for (TribeStatsElement elem : pElems) { TimeSeries rankDefSeries = new TimeSeries("Rang (Def) (" + elem.getTribe().getName() + ")"); Long[] timestamps = elem.getTimestamps(); Short[] rankDef = elem.getBashDefRank(); for (int i = 0; i < timestamps.length; i++) { rankDefSeries.add(new Second(new Date(timestamps[i])), rankDef[i]); } rankDefDataset.addSeries(rankDefSeries); } addDataset("Rang (Def)", rankDefDataset); } jChartPanel.removeAll(); theChartPanel = new ChartPanel(chart); theChartPanel.setDisplayToolTips(true); theChartPanel.setMouseWheelEnabled(true); jChartPanel.add(theChartPanel); SwingUtilities.invokeLater(new Runnable() { @Override public void run() { jChartPanel.updateUI(); } }); }
From source file:ucar.unidata.idv.control.chart.TimeSeriesChartWrapper.java
/** * Create the charts/* w ww. j a v a 2 s . com*/ * * @throws RemoteException On badness * @throws VisADException On badness */ public void loadDatax() throws VisADException, RemoteException { createChart(); times = null; List unitList = new ArrayList(); List dataChoiceWrappers = getDataChoiceWrappers(); datas.clear(); ranges.clear(); try { plot.setIgnoreDataSetChanges(true); plot.clearRangeAxes(); plot.setRangeAxis(0, new NumberAxis(""), false); for (int dataSetIdx = 0; dataSetIdx < plot.getDatasetCount(); dataSetIdx++) { TimeSeriesCollection dataset = (TimeSeriesCollection) plot.getDataset(dataSetIdx); dataset.removeAllSeries(); } // plot.clearDatasets(); // dataset.setDomainIsPointsInTime(true); Hashtable props = new Hashtable(); props.put(TrackDataSource.PROP_TRACKTYPE, TrackDataSource.ID_TIMETRACE); AxisLocation lastSide = AxisLocation.BOTTOM_OR_RIGHT; for (int paramIdx = 0; paramIdx < dataChoiceWrappers.size(); paramIdx++) { DataChoiceWrapper wrapper = (DataChoiceWrapper) dataChoiceWrappers.get(paramIdx); DataChoice dataChoice = wrapper.getDataChoice(); FlatField data = getFlatField((FieldImpl) dataChoice.getData(null, props)); Set domainSet = data.getDomainSet(); double[][] domain = domainSet.getDoubles(false); double[][] samples = data.getValues(false); double[] var = samples[0]; Unit unit = ucar.visad.Util.getDefaultRangeUnits(data)[0]; Unit displayUnit = null; if (unit != null) { displayUnit = getDisplayControl().getDisplayConventions().getDisplayUnit(dataChoice.getName(), null); if ((displayUnit != null) && !displayUnit.equals(unit)) { var = displayUnit.toThis(var, unit); unit = displayUnit; } } unitList.add(unit); double[] timeValues = getTimeValues(samples, (FlatField) data); double[][] result = filterData(var, timeValues); var = result[0]; timeValues = result[1]; TimeSeries series = new TimeSeries(dataChoice.getName() + ((unit == null) ? "" : " [" + unit + "]"), FixedMillisecond.class); //TODO: Find the lat/lon/alt index in the domain times = timeValues; lats = domain[0]; lons = domain[1]; alts = domain[2]; datas.add(var); long t1 = System.currentTimeMillis(); double min = 0; double max = 0; for (int i = 0; i < var.length; i++) { Date dttm = new Date((long) (timeValues[i])); // series.addOrUpdate(new FixedMillisecond(dttm), var[i]); series.add(new FixedMillisecond(dttm), var[i]); if ((i == 0) || (var[i] < min)) { min = var[i]; } if ((i == 0) || (var[i] > max)) { max = var[i]; } } ranges.add(new ucar.unidata.util.Range(min, max)); long t2 = System.currentTimeMillis(); // System.err.println ("\t time to add:" + (t2-t1)); TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.setDomainIsPointsInTime(true); dataset.addSeries(series); NumberAxis rangeAxis = new NumberAxis(wrapper.getLabel(unit)); plot.setRangeAxis(paramIdx, rangeAxis, false); plot.setDataset(paramIdx, dataset); XYItemRenderer renderer = doMakeRenderer(); plot.setRenderer(paramIdx, renderer); plot.mapDatasetToRangeAxis(paramIdx, paramIdx); Color c = wrapper.getColor(paramIdx); rangeAxis.setLabelPaint(c); renderer.setSeriesPaint(0, c); renderer.setSeriesStroke(0, wrapper.getLineState().getStroke()); AxisLocation side; if (wrapper.getSide() == wrapper.SIDE_UNDEFINED) { if (lastSide == AxisLocation.TOP_OR_LEFT) { side = AxisLocation.BOTTOM_OR_RIGHT; } else { side = AxisLocation.TOP_OR_LEFT; } } else if (wrapper.getSide() == wrapper.SIDE_LEFT) { side = AxisLocation.TOP_OR_LEFT; } else { side = AxisLocation.BOTTOM_OR_RIGHT; } lastSide = side; plot.setRangeAxisLocation(paramIdx, side); } } catch (Exception exc) { LogUtil.logException("Error creating data set", exc); return; } if (dataChoiceWrappers.size() == 0) { NumberAxis axis = new NumberAxis(""); plot.setRangeAxis(0, axis, false); ValueAxis timeAxis = doMakeDateAxis(); plot.setDomainAxis(0, timeAxis, false); } plot.setIgnoreDataSetChanges(false); try { setLocationPositions(); } catch (Exception exc) { LogUtil.logException("Error creating wayPoints", exc); } }
From source file:compecon.dashboard.panel.HouseholdsPanel.java
protected ChartPanel createIncomeSourcePanel(Currency currency) { TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(); for (IncomeSource incomeSource : ApplicationContext.getInstance().getModelRegistry() .getNationalEconomyModel(currency).householdsModel.incomeSourceModel.getIndexTypes()) { timeSeriesCollection.addSeries(ApplicationContext.getInstance().getModelRegistry() .getNationalEconomyModel(currency).householdsModel.incomeSourceModel .getTimeSeries(incomeSource)); }// ww w . ja va 2s .c o m JFreeChart chart = ChartFactory.createTimeSeriesChart("Income Source", "Date", "Income Source", timeSeriesCollection, true, true, false); configureChart(chart); return new ChartPanel(chart); }
From source file:org.jfree.data.time.TimeSeriesCollectionTest.java
/** * Some checks for the getRangeBounds() method. *///w w w. ja va2 s. c o m @Test public void testGetRangeBounds() { TimeSeriesCollection dataset = new TimeSeriesCollection(); // when the dataset contains no series, we expect the range to be null assertNull(dataset.getRangeBounds(false)); assertNull(dataset.getRangeBounds(true)); // when the dataset contains one or more series, but those series // contain no items, we still expect the range to be null TimeSeries s1 = new TimeSeries("S1"); dataset.addSeries(s1); assertNull(dataset.getRangeBounds(false)); assertNull(dataset.getRangeBounds(true)); // tests with values s1.add(new Year(2012), 1.0); assertEquals(new Range(1.0, 1.0), dataset.getRangeBounds(false)); assertEquals(new Range(1.0, 1.0), dataset.getRangeBounds(true)); s1.add(new Year(2013), -1.0); assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false)); assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true)); s1.add(new Year(2014), null); assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false)); assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true)); // adding a second series TimeSeries s2 = new TimeSeries("S2"); dataset.addSeries(s2); assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false)); assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true)); s2.add(new Year(2014), 5.0); assertEquals(new Range(-1.0, 5.0), dataset.getRangeBounds(false)); assertEquals(new Range(-1.0, 5.0), dataset.getRangeBounds(true)); dataset.removeAllSeries(); assertNull(dataset.getRangeBounds(false)); assertNull(dataset.getRangeBounds(true)); s1 = new TimeSeries("s1"); s2 = new TimeSeries("s2"); dataset.addSeries(s1); dataset.addSeries(s2); assertNull(dataset.getRangeBounds(false)); assertNull(dataset.getRangeBounds(true)); s2.add(new Year(2014), 100.0); assertEquals(new Range(100.0, 100.0), dataset.getRangeBounds(false)); assertEquals(new Range(100.0, 100.0), dataset.getRangeBounds(true)); }
From source file:jgnash.ui.report.compiled.MonthlyAccountBalanceChartCompare.java
private TimeSeriesCollection createTimeSeriesCollection(final Account account, final Account a2) { //always use this method //if (subAccountCheckBox.isApproved()) { // Getting the dates to calculate LocalDate start = startDateField.getLocalDate().with(TemporalAdjusters.firstDayOfMonth()); LocalDate stop = endDateField.getLocalDate().with(TemporalAdjusters.lastDayOfMonth()); List<LocalDate> list = DateUtils.getLastDayOfTheMonths(start, stop); TimeSeries t = new TimeSeries(rb.getString("Column.Month"), rb.getString("Column.Month"), rb.getString("Column.Balance")); TimeSeries t2 = new TimeSeries(rb.getString("Column.Month"), rb.getString("Column.Month"), rb.getString("Column.Balance")); // For every month, calculate the total amount for (final LocalDate localDate : list) { final LocalDate d = localDate.with(TemporalAdjusters.lastDayOfMonth()); final LocalDate s = localDate.with(TemporalAdjusters.firstDayOfMonth()); // Get the total amount for the account and every sub accounts // for the specified date //BigDecimal bd_TotalAmount = calculateTotal(s, d, account, account.getCurrencyNode()); BigDecimal bd_TotalAmount = calculateTotal(s, d, account, subAccountCheckBox.isSelected(), account.getCurrencyNode()); // Include it in the graph t.add(new Month(DateUtils.asDate(localDate)), totalModulus(bd_TotalAmount, account.getAccountType())); if (jcb_compare.isSelected()) { bd_TotalAmount = calculateTotal(s, d, a2, subAccountCheckBox.isSelected(), account.getCurrencyNode()); t2.add(new Month(DateUtils.asDate(localDate)), totalModulus(bd_TotalAmount, a2.getAccountType())); }//from w ww.j ava 2 s.co m } TimeSeriesCollection tsc = new TimeSeriesCollection(); tsc.addSeries(t); if (jcb_compare.isSelected()) { tsc.addSeries(t2); } return tsc; /* return new TimeSeriesCollection(t); } int count = account.getTransactionCount(); if (count > 0) { Date start = account.getTransactionAt(0).getDate(); Date stop = account.getTransactionAt(count - 1).getDate(); list = DateUtils.getLastDayOfTheMonths(start, stop); } TimeSeries t = new TimeSeries(rb.getString("Column.Month"), rb.getString("Column.Month"), rb.getString("Column.Balance")); AccountType type = account.getAccountType(); for (Date aList : list) { // get balance for the whole month Date d = DateUtils.getLastDayOfTheMonth(aList); Date s = DateUtils.getFirstDayOfTheMonth(aList); BigDecimal balance = AccountBalanceDisplayManager.convertToSelectedBalanceMode(type, account.getBalance(s, d)); t.add(new Month(aList), balance); } return new TimeSeriesCollection(t); */ }
From source file:com.android.ddmuilib.log.event.DisplayGraph.java
/** * Returns the {@link TimeSeriesCollection} for the occurrence display. If the data set is not * yet created, it is first allocated and set up into the {@link org.jfree.chart.JFreeChart} object. *//*w w w . j a va 2 s. co m*/ private TimeSeriesCollection getOccurrenceDataSet() { if (mOccurrenceDataSet == null) { mOccurrenceDataSet = new TimeSeriesCollection(); XYPlot xyPlot = mChart.getXYPlot(); xyPlot.setDataset(mDataSetCount, mOccurrenceDataSet); OccurrenceRenderer renderer = new OccurrenceRenderer(); renderer.setBaseShapesVisible(false); xyPlot.setRenderer(mDataSetCount, renderer); mDataSetCount++; } return mOccurrenceDataSet; }
From source file:gov.llnl.lc.infiniband.opensm.plugin.gui.chart.PortCounterPlotWorker.java
private XYDataset createDeltaDataset(OSM_FabricDeltaCollection deltaHistory, PortCounterName pcn, String seriesName) {//from w w w . j a v a 2 s . c o m TimeSeries series = new TimeSeries(seriesName); // iterate through the collection, and build up a time series for (int j = 0; j < deltaHistory.getSize(); j++) { OSM_FabricDelta delta = deltaHistory.getOSM_FabricDelta(j); // find the desired port counter, in this instance LinkedHashMap<String, PFM_PortChange> pcL = delta.getPortChanges(); PFM_PortChange pC = pcL.get(OSM_Port.getOSM_PortKey(Port)); long lValue = pC.getDelta_port_counter(pcn); // correct for missing time periods int deltaSeconds = delta.getDeltaSeconds(); long sweepPeriod = delta.getFabric2().getPerfMgrSweepSecs(); if (sweepPeriod < deltaSeconds) { // graph is reported as counts per period, so if the period is too long, interpolate lValue *= sweepPeriod; lValue /= deltaSeconds; } TimeStamp ts = pC.getCounterTimeStamp(); RegularTimePeriod ms = new FixedMillisecond(ts.getTimeInMillis()); series.add(ms, (double) lValue); } TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(series); return dataset; }
From source file:com.alibaba.dubbo.monitor.simple.SimpleMonitorService.java
private static void createChart(String key, String service, String method, String date, String[] types, Map<String, long[]> data, double[] summary, String path) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm"); DecimalFormat numberFormat = new DecimalFormat("###,##0.##"); TimeSeriesCollection xydataset = new TimeSeriesCollection(); for (int i = 0; i < types.length; i++) { String type = types[i];//ww w .jav a 2 s . co m TimeSeries timeseries = new TimeSeries(type); for (Map.Entry<String, long[]> entry : data.entrySet()) { try { timeseries.add(new Minute(dateFormat.parse(date + entry.getKey())), entry.getValue()[i]); } catch (ParseException e) { logger.error(e.getMessage(), e); } } xydataset.addSeries(timeseries); } JFreeChart jfreechart = ChartFactory.createTimeSeriesChart( "max: " + numberFormat.format(summary[0]) + (summary[1] >= 0 ? " min: " + numberFormat.format(summary[1]) : "") + " avg: " + numberFormat.format(summary[2]) + (summary[3] >= 0 ? " sum: " + numberFormat.format(summary[3]) : ""), toDisplayService(service) + " " + method + " " + toDisplayDate(date), key, xydataset, true, true, false); jfreechart.setBackgroundPaint(Color.WHITE); XYPlot xyplot = (XYPlot) jfreechart.getPlot(); xyplot.setBackgroundPaint(Color.WHITE); xyplot.setDomainGridlinePaint(Color.GRAY); xyplot.setRangeGridlinePaint(Color.GRAY); xyplot.setDomainGridlinesVisible(true); xyplot.setRangeGridlinesVisible(true); DateAxis dateaxis = (DateAxis) xyplot.getDomainAxis(); dateaxis.setDateFormatOverride(new SimpleDateFormat("HH:mm")); BufferedImage image = jfreechart.createBufferedImage(600, 300); try { if (logger.isInfoEnabled()) { logger.info("write chart: " + path); } File methodChartFile = new File(path); File methodChartDir = methodChartFile.getParentFile(); if (methodChartDir != null && !methodChartDir.exists()) { methodChartDir.mkdirs(); } FileOutputStream output = new FileOutputStream(methodChartFile); try { ImageIO.write(image, "png", output); output.flush(); } finally { output.close(); } } catch (IOException e) { logger.warn(e.getMessage(), e); } }
From source file:tools.descartes.bungee.chart.ChartGenerator.java
public static XYPlot createIntensityPlot(final List<ArrivalRateTuple> intensities) { final TimeSeriesCollection dataset = new TimeSeriesCollection(); final TimeSeries series = new TimeSeries("load intensity"); for (ArrivalRateTuple intensity : intensities) { long milliseconds = (referenceDate.getTime() / 1000 + (long) Math.floor(intensity.getTimeStamp())) * 1000;//from w w w. j a v a2 s . c o m series.add(new FixedMillisecond(milliseconds), intensity.getArrivalRate()); } dataset.addSeries(series); XYStepRenderer renderer = new XYStepRenderer(); //renderer.setSeriesStroke(0, (new BasicStroke(2.0F))); renderer.setSeriesPaint(0, Color.GRAY); final NumberAxis rangeAxis = new NumberAxis("Arrival Rate [1/s]"); //rangeAxis.setRange(0, 220); final XYPlot intensityPlot = new XYPlot(dataset, null, rangeAxis, renderer); return intensityPlot; }
From source file:org.paxle.tools.charts.impl.gui.ChartServlet.java
private JFreeChart createMemoryChart() { // init time series TimeSeries usedmemSeries = new TimeSeries("Used MEM", Minute.class); usedmemSeries.setMaximumItemAge(24 * 60); this.seriesMap.put(TSERIES_MEMORY_USAGE, usedmemSeries); // init collections and chart final TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(usedmemSeries);//from w ww. j a v a 2s .c om /* * INIT CHART */ JFreeChart chart = ChartFactory.createTimeSeriesChart(null, "Time", "Memory [MB]", dataset, true, false, false); // change axis data format ((DateAxis) chart.getXYPlot().getDomainAxis()).setDateFormatOverride(new SimpleDateFormat("HH:mm")); long maxMemory = Runtime.getRuntime().maxMemory(); if (maxMemory != Long.MAX_VALUE) { ((NumberAxis) chart.getXYPlot().getRangeAxis()).setRange(0, (double) maxMemory / (double) (1024 * 1024)); } chart.setBackgroundPaint(Color.WHITE); return chart; }