List of usage examples for org.jfree.data.time TimeSeriesCollection addSeries
public void addSeries(TimeSeries series)
From source file:org.jfree.chart.demo.MarkerDemo2.java
private static XYDataset createDataset() { TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); TimeSeries timeseries = new TimeSeries("Temperature"); timeseries.add(new Hour(0, 30, 6, 2005), 45.299999999999997D); timeseries.add(new Hour(1, 30, 6, 2005), 48.899999999999999D); timeseries.add(new Hour(2, 30, 6, 2005), 52.100000000000001D); timeseries.add(new Hour(3, 30, 6, 2005), 44.799999999999997D); timeseries.add(new Hour(4, 30, 6, 2005), 49.899999999999999D); timeseries.add(new Hour(5, 30, 6, 2005), 55.5D); timeseries.add(new Hour(6, 30, 6, 2005), 58.200000000000003D); timeseries.add(new Hour(7, 30, 6, 2005), 58.100000000000001D); timeseries.add(new Hour(8, 30, 6, 2005), 63.700000000000003D); timeseries.add(new Hour(9, 30, 6, 2005), 66.299999999999997D); timeseries.add(new Hour(10, 30, 6, 2005), 69.799999999999997D); timeseries.add(new Hour(11, 30, 6, 2005), 70.099999999999994D); timeseries.add(new Hour(12, 30, 6, 2005), 72.400000000000006D); timeseries.add(new Hour(13, 30, 6, 2005), 69.700000000000003D); timeseries.add(new Hour(14, 30, 6, 2005), 68.599999999999994D); timeseries.add(new Hour(15, 30, 6, 2005), 70.900000000000006D); timeseries.add(new Hour(16, 30, 6, 2005), 73.400000000000006D); timeseries.add(new Hour(17, 30, 6, 2005), 77.5D); timeseries.add(new Hour(18, 30, 6, 2005), 82.900000000000006D); timeseries.add(new Hour(19, 30, 6, 2005), 62.100000000000001D); timeseries.add(new Hour(20, 30, 6, 2005), 37.299999999999997D); timeseries.add(new Hour(21, 30, 6, 2005), 40.700000000000003D); timeseries.add(new Hour(22, 30, 6, 2005), 44.200000000000003D); timeseries.add(new Hour(23, 30, 6, 2005), 49.799999999999997D); timeseriescollection.addSeries(timeseries); return timeseriescollection; }
From source file:virgil.meanback.HistoryInfo.java
public XYDataset getDataSet(Stock stock, List<String[]> list) throws Exception { TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); TimeSeries time1 = new TimeSeries("MD20"); TimeSeries time2 = new TimeSeries("K"); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); for (int i = 0; i < list.size(); i++) { String[] s = (String[]) list.get(i); Date d = format.parse(s[0]); Calendar cc = Calendar.getInstance(); cc.setTime(d);// w ww . ja v a2 s . c o m double db = Double.parseDouble(stock.getList().get(i).getClose()); Day day = new Day(d); time1.addOrUpdate(day, db); double dayclose = Double.parseDouble(stock.getList().get(i).getClose()); time2.addOrUpdate(day, dayclose); } timeseriescollection.addSeries(time1); timeseriescollection.addSeries(time2); return timeseriescollection; }
From source file:org.jfree.data.time.TimeSeriesCollectionTest.java
/** * Some checks for the getRangeBounds() method. *//*ww w. j a v a 2 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:gov.llnl.lc.infiniband.opensm.plugin.gui.chart.SimpleXY_ChartPanel.java
private XYDataset createDeltaDataset(OSM_FabricDeltaCollection deltaHistory, Object userElement, String seriesName) {// w w w . j a v a 2 s.c o m // PortCounterName portCounter = null; // MAD_Counter madCounter = null; // OsmEvent osmEvent = null; // // if((Port != null) && (userElement instanceof PortCounterName)) // portCounter = (PortCounterName)userElement; // // if((MAD_Stats != null) && (userElement instanceof MAD_Counter)) // madCounter = (MAD_Counter)userElement; // // if((EventStats != null) && (userElement instanceof OsmEvent)) // osmEvent = (OsmEvent)userElement; // 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); // the dataset is a timeseries collection long lValue = 0; TimeStamp ts = null; RegularTimePeriod ms = null; if (Port != null) { // 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)); lValue = pC.getDelta_port_counter(PortCounter); ts = pC.getCounterTimeStamp(); // 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; } } else if (MADCounter != null) { // find the desired MAD counter, in this instance OSM_Stats mStats = delta.getStatChanges(); lValue = MADCounter.getCounterValue(mStats); ts = delta.getTimeStamp(); // 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; } } else if (EventType != null) { // find the desired Event counter, in this instance OSM_EventStats eStats = delta.getEventChanges(); lValue = eStats.getCounter(EventType); ts = delta.getTimeStamp(); // 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; } } else continue; ms = new FixedMillisecond(ts.getTimeInMillis()); series.add(ms, (double) lValue); } TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(series); return dataset; }
From source file:DataCharts.Chart.java
/** * Creates a dataset, consisting customers per area code * Methods are for display purposes at this point and may be refactored and * modified based on necessity//from w w w . ja v a2 s . c om */ private XYDataset createXYDataset(ArrayList<YearData> locs) { try { ResultSet locations = db.selectDataColumn("customer", "*"); TimeSeriesCollection dataset = new TimeSeriesCollection(); Calendar defCal = Calendar.getInstance(); defCal.set(2015, 1, 1); int defMonthNum = defCal.get(Calendar.MONTH); TimeSeries defTime = new TimeSeries("" + defCal.get(Calendar.MONTH)); Month defMonth = new Month(defMonthNum, 2015); defTime.addOrUpdate(defMonth, 0); defCal = Calendar.getInstance(); defCal.set(2015, 6, 6); defMonthNum = defCal.get(Calendar.MONTH); defTime = new TimeSeries("" + defCal.get(Calendar.MONTH)); defMonth = new Month(defMonthNum, 2015); defTime.addOrUpdate(defMonth, 0); dataset.addSeries(defTime); while (locations.next()) { ResultSet jobDates = db.selectDataColumn("jobs", "date", locations.getString(2), "CustomerID"); TimeSeries time = new TimeSeries("" + locations.getInt(7)); int n = 0; Month month = null; while (jobDates.next()) { if (n == 0) { Calendar cal = Calendar.getInstance(); cal.setTime(jobDates.getDate(1)); int monthNum = cal.get(Calendar.MONTH); month = new Month(monthNum, 2015); } n++; } if (month != null) { time.addOrUpdate(month, n); dataset.addSeries(time); } } return dataset; } catch (SQLException ex) { Logger.getLogger(Chart.class.getName()).log(Level.SEVERE, null, ex); } return null; }
From source file:msec.org.Tools.java
private static XYDataset createDaysDataset(ArrayList<OneDayValue> oneDayValues, GregorianCalendar startgc, OneAttrDaysChart chart) {//w w w.j a va 2 s.co m TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); TimeSeries timeseries = new TimeSeries( oneDayValues.get(0).getDate() + "-" + oneDayValues.get(oneDayValues.size() - 1).getDate()); int sum = 0; int max = 0; int min = 0; Minute current = new Minute(startgc.getTime()); for (int j = 0; j < oneDayValues.size(); j++) { int[] data = oneDayValues.get(j).getValues(); //check actual length for data int len = data.length - 1; if (j == oneDayValues.size() - 1) { //if last day is today... if (oneDayValues.get(j).getDate().equals(Tools.nowString("yyyyMMdd"))) { for (int i = len; i >= 0; i--) { if (data[i] != 0) { len = i; break; } } } } for (int i = 0; i < len; ++i) { timeseries.add(current, (double) (data[i])); sum += data[i]; max = Math.max(max, data[i]); if (min == 0) min = data[i]; else if (data[i] != 0) min = Math.min(min, data[i]); current = (Minute) current.next(); } } chart.setMax(max); chart.setMin(min); chart.setSum(sum); timeseriescollection.addSeries(timeseries); return timeseriescollection; }
From source file:org.jfree.chart.demo.DifferenceChartDemo2.java
/** * Creates a new demo.// w w w . j av a 2 s. c om * * @param title the frame title. */ public DifferenceChartDemo2(final String title) { super(title); final TimeSeries series1 = createSunriseSeries(); final TimeSeries series2 = createSunsetSeries(); final TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(series1); dataset.addSeries(series2); final JFreeChart chart = createChart(dataset); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(chartPanel); }
From source file:net.atomique.ksar.graph.Graph.java
private XYDataset create_collection(ArrayList l) { TimeSeriesCollection graphcollection = new TimeSeriesCollection(); TimeSeries found;//w ww . j av a 2 s . c o m boolean hasdata = false; for (int i = 0; i < l.size(); i++) { found = null; for (int j = 0; j < Stats.size(); j++) { found = Stats.get(j); if (found.getKey().equals(l.get(i))) { break; } else { found = null; } } if (found != null) { graphcollection.addSeries(found); hasdata = true; } } if (!hasdata) { return null; } return graphcollection; }
From source file:com.prezerak.windmill.gui.AveragesPanel.java
private void plotEverything() { try {/*from w w w.j av a2 s.c o m*/ final XYPlot plot = chart.getXYPlot(); ValueAxis domainAxis = plot.getDomainAxis(); plot.getDomainAxis().setLowerMargin(0); plot.getDomainAxis().setUpperMargin(0); plot.getDomainAxis().setAutoRange(true); if (domainAxis instanceof DateAxis) { DateAxis axis = (DateAxis) domainAxis; // customise axis here... //axis.setRange(new Date(startDate), new Date(endDate)); long startT = datasetVel.getDataItem(0).getPeriod().getLastMillisecond(); long endT = datasetVel.getDataItem(datasetVel.getItemCount() - 1).getPeriod().getLastMillisecond(); ; DateFormat formatter; long duration = endT - startT; long _24hrs = 1000 * 60 * 60 * 24; long _3mins = 1000 * 60 * 3; if (duration > _24hrs) { formatter = new SimpleDateFormat("HH:mm dd-MMM"); } else if (endDate - startDate > _3mins && endDate - startDate <= _24hrs) formatter = new SimpleDateFormat("HH:mm"); else //smaller than 3mins formatter = new SimpleDateFormat("HH:mm:ss"); axis.setDateFormatOverride(formatter); } TimeSeriesCollection seriesVel = new TimeSeriesCollection(); seriesVel.addSeries(datasetVel); plot.setDataset(0, seriesVel); final NumberAxis velRangeAxis = (NumberAxis) plot.getRangeAxis(); velRangeAxis.setRange(0.0, maxY); plot.setRangeAxis(velRangeAxis); plot.mapDatasetToRangeAxis(0, 0); XYLineAndShapeRenderer velocityRenderer = (XYLineAndShapeRenderer) plot.getRenderer(0); velocityRenderer.setBaseShapesVisible(true); velocityRenderer.setBaseShapesFilled(false); velocityRenderer.setBaseToolTipGenerator( new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, new SimpleDateFormat("dd-MM-yy, hh:mm:ss a"), new DecimalFormat("00.0"))); velocityRenderer.setSeriesPaint(0, Color.BLACK); if (!rdbtnVelocity.isSelected()) { velocityRenderer.setSeriesVisible(0, false); } else { velocityRenderer.setSeriesVisible(0, true); } TimeSeriesCollection seriesDir = new TimeSeriesCollection(); seriesDir.addSeries(datasetDir); plot.setDataset(1, seriesDir); final ValueAxis dirRangeAxis = new NumberAxis("Direction"); dirRangeAxis.setRange(0.0, 370.0); plot.setRangeAxis(1, dirRangeAxis); plot.mapDatasetToRangeAxis(1, 1); XYLineAndShapeRenderer dirRenderer = (XYLineAndShapeRenderer) plot.getRenderer(1); if (dirRenderer == null) dirRenderer = new XYLineAndShapeRenderer(); dirRenderer.setBaseToolTipGenerator( new StandardXYToolTipGenerator(StandardXYToolTipGenerator.DEFAULT_TOOL_TIP_FORMAT, new SimpleDateFormat("dd-MM-yy, hh:mm:ss a"), new DecimalFormat("00.0"))); plot.setRenderer(1, dirRenderer); dirRenderer.setSeriesPaint(0, Color.BLUE); if (!rdbtnDirection.isSelected()) { dirRenderer.setSeriesVisible(0, false); } else { dirRenderer.setSeriesVisible(0, true); } final ValueAxis alarmsRangeAxis = new NumberAxis("Alarms"); alarmsRangeAxis.setRange(0.0, 1); alarmsRangeAxis.setVisible(false); XYBarRenderer gustRenderer = null; TimePeriodValuesCollection seriesGust = new TimePeriodValuesCollection(datasetGust); plot.setDataset(2, seriesGust); plot.setRangeAxis(2, alarmsRangeAxis); plot.mapDatasetToRangeAxis(2, 2); gustRenderer = (XYBarRenderer) plot.getRenderer(2); if (gustRenderer == null) gustRenderer = new XYBarRenderer(); plot.setRenderer(2, gustRenderer); gustRenderer.setSeriesPaint(0, Color.PINK); if ((rdbtnVelocity.isSelected() || rdbtnDirection.isSelected()) && rdbtnGust.isSelected()) gustRenderer.setSeriesVisible(0, true); else gustRenderer.setSeriesVisible(0, false); XYBarRenderer higherRenderer = null; TimePeriodValuesCollection seriesHigher = new TimePeriodValuesCollection(datasetHigher); plot.setDataset(3, seriesHigher); plot.setRangeAxis(3, alarmsRangeAxis); plot.mapDatasetToRangeAxis(3, 2); higherRenderer = (XYBarRenderer) plot.getRenderer(3); if (higherRenderer == null) higherRenderer = new XYBarRenderer(); plot.setRenderer(3, higherRenderer); higherRenderer.setSeriesPaint(0, Color.RED); if ((rdbtnVelocity.isSelected() || rdbtnDirection.isSelected()) && rdbtnHigher.isSelected()) higherRenderer.setSeriesVisible(0, true); else higherRenderer.setSeriesVisible(0, false); TimePeriodValuesCollection seriesHigh = new TimePeriodValuesCollection(datasetHigh); plot.setDataset(4, seriesHigh); plot.setRangeAxis(4, alarmsRangeAxis); plot.mapDatasetToRangeAxis(4, 2); XYBarRenderer highRenderer = (XYBarRenderer) plot.getRenderer(4); if (highRenderer == null) highRenderer = new XYBarRenderer(); plot.setRenderer(4, highRenderer); highRenderer.setSeriesPaint(0, new Color(206, 33, 85)); if ((rdbtnVelocity.isSelected() || rdbtnDirection.isSelected()) && rdbtnHigh.isSelected()) highRenderer.setSeriesVisible(0, true); else highRenderer.setSeriesVisible(0, false); } catch (OutOfMemoryError e) { WindMill.logger.warn("Out of Memory in plotEverything"); } }
From source file:ecg.ecgshow.ECGShowUI.java
private void createECGData(long timeZone) { ECGData = new JPanel(new GridLayout(LEAD_COUNT, 1)); dateAxises = new DateAxis[LEAD_COUNT]; ECGSeries = new TimeSeries[LEAD_COUNT * 2]; for (int i = 0; i < LEAD_COUNT; i++) { TimeSeriesCollection timeseriescollection = new TimeSeriesCollection(); //XYDataset TimeSeriesCollection ECGSeries[i] = new TimeSeries("?" + (i + 1)); ECGSeries[i].setMaximumItemCount(500); ECGSeries[i + LEAD_COUNT] = new TimeSeries(""); ECGSeries[i + LEAD_COUNT].setMaximumItemAge(timeZone); ECGSeries[i + LEAD_COUNT].setMaximumItemCount(2); timeseriescollection.addSeries(ECGSeries[i]); timeseriescollection.addSeries(ECGSeries[i + LEAD_COUNT]); //DateAxis dateaxis = new DateAxis("Time"); dateAxises[i] = new DateAxis(""); dateAxises[i].setTickLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.016))); dateAxises[i].setLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.018))); dateAxises[i].setTickLabelsVisible(true); dateAxises[i].setVisible(false); //NumberAxis numberaxis = new NumberAxis("ecg"); NumberAxis numberaxis = new NumberAxis("ecg"); numberaxis.setTickLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.016))); numberaxis.setLabelFont(new Font("SansSerif", 0, (int) (HEIGHT * 0.018))); numberaxis.setStandardTickUnits(NumberAxis.createIntegerTickUnits()); numberaxis.setVisible(false);/*from w ww.java 2 s . c om*/ numberaxis.setLowerBound(1500D); numberaxis.setUpperBound(3000D); XYLineAndShapeRenderer xylineandshaperenderer = new XYLineAndShapeRenderer(true, false); xylineandshaperenderer.setSeriesPaint(0, Color.GREEN); // xylineandshaperenderer.setSeriesStroke(0, new BasicStroke(2)); xylineandshaperenderer.setSeriesPaint(1, Color.LIGHT_GRAY); // xylineandshaperenderer.setSeriesStroke(1, new BasicStroke(5)); XYPlot xyplot = new XYPlot(timeseriescollection, dateAxises[i], numberaxis, xylineandshaperenderer); xyplot.setBackgroundPaint(Color.LIGHT_GRAY); xyplot.setDomainGridlinePaint(Color.LIGHT_GRAY); xyplot.setRangeGridlinePaint(Color.LIGHT_GRAY); xyplot.setAxisOffset(new RectangleInsets(5D, 5D, 5D, 5D)); xyplot.setBackgroundPaint(Color.BLACK); JFreeChart jfreechart = new JFreeChart(xyplot); jfreechart.setBackgroundPaint(new Color(237, 237, 237));//? jfreechart.getLegend().setVisible(false); ChartPanel chartpanel = new ChartPanel(jfreechart, (int) (WIDTH * 46 / 100), (int) (HEIGHT * 17 / 100), 0, 0, Integer.MAX_VALUE, Integer.MAX_VALUE, true, true, false, true, false, false); chartpanel.setBorder(BorderFactory.createCompoundBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0) //??0 , BorderFactory.createEmptyBorder() //???? )); chartpanel.setMouseZoomable(false); //? ECGData.add(chartpanel); } }