List of usage examples for org.jfree.data.time TimeSeriesCollection getSeries
public List getSeries()
From source file:com.bpd.jfreechart.StackedAreaChartDemo.java
/** * Test program that will display a JFreeChart showing interpolated data points. * // ww w .j av a 2 s .co m * @param args <b>"1"</b> to display Series 1. <b>"2"</b> to display Series 2. <b>"0"</b> to * display both series. */ public static void main(String... args) { // Check arguments. if (args.length != 1) { System.err.println("Usage: java Chart [0|1|2]\n\n -- 0: Display Series 1."); System.err.println(" -- 1: Display Series 2.\n -- 2: Display both series."); return; } String option = args[0]; if (!"0".equals(option) && !"1".equals(option) && !"2".equals(option)) { System.err.println("Invalid argument: " + option); return; } // Create some sample data. List<Point<Number, Number>> list1 = new ArrayList<Point<Number, Number>>(); list1.add(new Point<Number, Number>(50, 100.0)); list1.add(new Point<Number, Number>(150, 100)); list1.add(new Point<Number, Number>(250, 200)); list1.add(new Point<Number, Number>(350, 400)); list1.add(new Point<Number, Number>(450, 200)); list1.add(new Point<Number, Number>(550, 100)); List<Point<Number, Number>> list2 = new ArrayList<Point<Number, Number>>(); list2.add(new Point<Number, Number>(50, 100.0)); list2.add(new Point<Number, Number>(150, 200.0)); list2.add(new Point<Number, Number>(250, 400.0)); list2.add(new Point<Number, Number>(350, 600.0)); list2.add(new Point<Number, Number>(450, 400.0)); list2.add(new Point<Number, Number>(550, 200.0)); // Add data to time series. TimeSeries series1 = new TimeSeries("Series 1", FixedMillisecond.class); for (Point<Number, Number> dataPoint : list1) { if ("1".equals(option) || "0".equals(option)) { series1.add(new FixedMillisecond(dataPoint.getX().longValue()), dataPoint.getY()); } series1.setDescription("Series 1"); } TimeSeries series2 = new TimeSeries("Series 2", FixedMillisecond.class); for (Point<Number, Number> dataPoint : list2) { if ("2".equals(option) || "0".equals(option)) { series2.add(new FixedMillisecond(dataPoint.getX().longValue()), dataPoint.getY()); } series2.setDescription("Series 2"); } TimeSeriesCollection collection = new TimeSeriesCollection(); if ("1".equals(option)) { collection.addSeries(series1); } else if ("2".equals(option)) { collection.addSeries(series2); } else if ("0".equals(option)) { collection.addSeries(series1); collection.addSeries(series2); } TimeTableXYDataset dataset = new TimeTableXYDataset(); @SuppressWarnings("unchecked") List<TimeSeries> timeSeriesList = collection.getSeries(); for (TimeSeries t : timeSeriesList) { for (int index = 0; index < t.getItemCount(); index++) { TimeSeriesDataItem dataItem = (TimeSeriesDataItem) t.getItems().get(index); dataset.add(t.getTimePeriod(index), dataItem.getValue().doubleValue(), t.getDescription()); } } // Create and display chart. JFreeChart chart = ChartFactory.createStackedXYAreaChart(null, null, null, dataset, PlotOrientation.VERTICAL, false, true, false); customizeChart(chart); ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setBorder(BorderFactory.createEmptyBorder(8, 8, 8, 8)); JFrame frame = new JFrame(); frame.getContentPane().add(chartPanel); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); }
From source file:de.xirp.chart.ChartUtil.java
/** * Exports the given dataset as CSV.//from ww w. j a v a 2 s . c o m * * @param dataset * The dataset to export. * @param robotName * The robot name for which the dataset is exported. * @see org.jfree.data.time.TimeSeriesCollection */ private static void exportCSV(TimeSeriesCollection dataset, String robotName) { for (Object obj : dataset.getSeries()) { List<Observed> obs = new ArrayList<Observed>(); TimeSeries ts = (TimeSeries) obj; String observedKey = (String) ts.getKey(); for (Object obj2 : ts.getItems()) { TimeSeriesDataItem tsdi = (TimeSeriesDataItem) obj2; Observed o = new Observed(); o.setObservedKey(observedKey); o.setTimestamp(tsdi.getPeriod().getStart().getTime()); o.setValue(tsdi.getValue().doubleValue()); obs.add(o); } exportCSV(obs, robotName); } }
From source file:edu.fullerton.viewerplugin.PluginSupport.java
public static int scaleRange(TimeSeriesCollection mtds, Double miny, Double maxy) { int exp = PluginSupport.getExp(miny, maxy); double scale = Math.pow(10, exp); for (Iterator it = mtds.getSeries().iterator(); it.hasNext();) { TimeSeries ds = (TimeSeries) it.next(); for (int item = 0; item < ds.getItemCount(); item++) { TimeSeriesDataItem dataItem = ds.getDataItem(item); RegularTimePeriod period = dataItem.getPeriod(); double y = dataItem.getValue().doubleValue(); y *= scale;// www . j a v a2 s. c om ds.update(period, y); } } return exp; }
From source file:edu.fullerton.viewerplugin.PluginSupport.java
public static void getRangeLimits(TimeSeriesCollection mtds, Double rng[]) { Double minx, miny, maxx, maxy; minx = miny = Double.MAX_VALUE; maxx = maxy = -Double.MAX_VALUE; for (Iterator it = mtds.getSeries().iterator(); it.hasNext();) { TimeSeries ds = (TimeSeries) it.next(); for (int item = 1; item < ds.getItemCount() - 1; item++) { TimeSeriesDataItem dataItem = ds.getDataItem(item); RegularTimePeriod period = dataItem.getPeriod(); double y = dataItem.getValue().doubleValue(); double x = period.getFirstMillisecond(); minx = Math.min(minx, x); miny = Math.min(miny, y); maxx = Math.max(maxx, x); maxy = Math.max(maxy, y); }/*from w w w.j av a 2s .c o m*/ } rng[0] = minx; rng[1] = miny; rng[2] = maxx; rng[3] = maxy; }
From source file:net.sf.dynamicreports.test.jasper.chart.MultiAxisChartTest.java
@Override public void test() { super.test(); numberOfPagesTest(1);/*from w ww . j ava 2 s . c om*/ JFreeChart chart = getChart("summary.chart1", 0); XYItemRenderer renderer = chart.getXYPlot().getRenderer(); Assert.assertEquals("renderer", XYLineAndShapeRenderer.class, renderer.getClass()); TimeSeriesCollection dataset = (TimeSeriesCollection) chart.getXYPlot().getDataset(0); TimeSeries serie = (TimeSeries) dataset.getSeries().get(0); Assert.assertEquals("value", 1d, serie.getDataItem(0).getValue()); Assert.assertEquals("value", 2d, serie.getDataItem(1).getValue()); Assert.assertEquals("value", 3d, serie.getDataItem(2).getValue()); Assert.assertEquals("value", 4d, serie.getDataItem(3).getValue()); dataset = (TimeSeriesCollection) chart.getXYPlot().getDataset(1); serie = (TimeSeries) dataset.getSeries().get(0); Assert.assertEquals("value", 0d, serie.getDataItem(0).getValue()); Assert.assertEquals("value", 1d, serie.getDataItem(1).getValue()); Assert.assertEquals("value", 4d, serie.getDataItem(2).getValue()); Assert.assertEquals("value", 9d, serie.getDataItem(3).getValue()); JRChart chart2 = (JRChart) getJasperReport().getSummary().getElementByKey("summary.chart2"); JRChartPlot plot = chart2.getPlot(); Assert.assertTrue("plot", plot instanceof JRMultiAxisPlot); JRMultiAxisPlot multiAxisPlot = (JRMultiAxisPlot) plot; Assert.assertEquals("axes", 2, multiAxisPlot.getAxes().size()); JRChartAxis chartAxis = multiAxisPlot.getAxes().get(0); Assert.assertEquals("position", AxisPositionEnum.LEFT_OR_TOP, chartAxis.getPositionValue()); Assert.assertEquals("chart", JRChart.CHART_TYPE_TIMESERIES, chartAxis.getChart().getChartType()); chartAxis = multiAxisPlot.getAxes().get(1); Assert.assertEquals("position", AxisPositionEnum.RIGHT_OR_BOTTOM, chartAxis.getPositionValue()); Assert.assertEquals("chart", JRChart.CHART_TYPE_TIMESERIES, chartAxis.getChart().getChartType()); }
From source file:net.sf.dynamicreports.test.jasper.chart.MultiAxisChartDataTest.java
@Override public void test() { super.test(); numberOfPagesTest(1);//w w w . ja v a 2s . c om JFreeChart chart = getChart("summary.chart1", 0); XYItemRenderer renderer = chart.getXYPlot().getRenderer(); Assert.assertEquals("renderer", XYLineAndShapeRenderer.class, renderer.getClass()); TimeSeriesCollection dataset = (TimeSeriesCollection) chart.getXYPlot().getDataset(0); TimeSeries serie = (TimeSeries) dataset.getSeries().get(0); Assert.assertEquals("value", 1d, serie.getDataItem(0).getValue()); Assert.assertEquals("value", 2d, serie.getDataItem(1).getValue()); Assert.assertEquals("value", 3d, serie.getDataItem(2).getValue()); Assert.assertEquals("value", 4d, serie.getDataItem(3).getValue()); dataset = (TimeSeriesCollection) chart.getXYPlot().getDataset(1); serie = (TimeSeries) dataset.getSeries().get(0); Assert.assertEquals("value", 0d, serie.getDataItem(0).getValue()); Assert.assertEquals("value", 1d, serie.getDataItem(1).getValue()); Assert.assertEquals("value", 4d, serie.getDataItem(2).getValue()); Assert.assertEquals("value", 9d, serie.getDataItem(3).getValue()); chart = getChart("summary.chart2", 0); renderer = chart.getXYPlot().getRenderer(); Assert.assertEquals("renderer", XYLineAndShapeRenderer.class, renderer.getClass()); dataset = (TimeSeriesCollection) chart.getXYPlot().getDataset(0); serie = (TimeSeries) dataset.getSeries().get(0); Assert.assertEquals("value", 2d, serie.getDataItem(0).getValue()); Assert.assertEquals("value", 3d, serie.getDataItem(1).getValue()); Assert.assertEquals("value", 4d, serie.getDataItem(2).getValue()); Assert.assertEquals("value", 5d, serie.getDataItem(3).getValue()); dataset = (TimeSeriesCollection) chart.getXYPlot().getDataset(1); serie = (TimeSeries) dataset.getSeries().get(0); Assert.assertEquals("value", 0d, serie.getDataItem(0).getValue()); Assert.assertEquals("value", 1d, serie.getDataItem(1).getValue()); Assert.assertEquals("value", 4d, serie.getDataItem(2).getValue()); Assert.assertEquals("value", 9d, serie.getDataItem(3).getValue()); }
From source file:com.haskins.cloudtrailviewer.feature.MetricsFeature.java
@Override public void chartMouseClicked(ChartMouseEvent cme) { try {/*from w w w . j ava 2 s.c o m*/ XYItemEntity xyitem = (XYItemEntity) cme.getEntity(); TimeSeriesCollection dataset = (TimeSeriesCollection) xyitem.getDataset(); List<TimeSeries> series = dataset.getSeries(); TimeSeries timeSeries = series.get(xyitem.getSeriesIndex()); Second second = (Second) timeSeries.getTimePeriod(xyitem.getItem()); if (!eventTable.isVisible()) { jsp.setDividerLocation(0.5); jsp.setDividerSize(3); eventTable.setVisible(true); } eventTable.clearEvents(); eventTable.setEvents(secondEvents.get(second)); } catch (Exception e) { LOGGER.log(Level.WARNING, "Problem responding to Chart click event", e); } }
From source file:com.fr3ts0n.ecu.gui.application.ObdDataPlotter.java
/** * Setter for property graphTime.//from w ww. j a v a 2s . c om * * @param graphTime New value of property graphTime. */ @SuppressWarnings("rawtypes") public synchronized void setGraphTime(int graphTime) { TimeSeries currSer; TimeSeriesCollection currDs; XYPlot currPlot = (XYPlot) chart.getPlot(); this.graphTime = graphTime; // lop through all datasets for (int i = currPlot.getDatasetCount(); i >= 0; --i) { currDs = (TimeSeriesCollection) currPlot.getDataset(i); // Update all series within dataset Iterator it = currDs.getSeries().iterator(); while (it.hasNext()) { currSer = (TimeSeries) it.next(); currSer.setMaximumItemAge(graphTime); } } }
From source file:org.gbif.portal.web.controller.dataset.IndexingHistoryController.java
/** * Create a time series graphic to display indexing processes. * //from w ww. jav a 2 s. c o m * @param dataProvider * @param dataResource * @param activities * @param fileNamePrefix * @return */ public String timeSeriesTest(DataProviderDTO dataProvider, DataResourceDTO dataResource, List<LoggedActivityDTO> loggedActivities, String fileNamePrefix, int minProcessingTimeToRender) { List<LoggedActivityDTO> activities = new ArrayList<LoggedActivityDTO>(); for (LoggedActivityDTO la : loggedActivities) { if (la.getDataResourceKey() != null && la.getDataResourceName() != null && la.getEventName() != null) activities.add(la); } //if no activities to render, return if (activities.isEmpty()) return null; Map<String, Integer> drActualCount = new HashMap<String, Integer>(); Map<String, Integer> drCount = new HashMap<String, Integer>(); //record the actual counts for (LoggedActivityDTO laDTO : activities) { if (laDTO.getStartDate() != null && laDTO.getEndDate() != null && laDTO.getDurationInMillisecs() > minProcessingTimeToRender) { if (drActualCount.get(laDTO.getDataResourceName()) == null) { drActualCount.put(laDTO.getDataResourceName(), new Integer(4)); drCount.put(laDTO.getDataResourceName(), new Integer(0)); } else { Integer theCount = drActualCount.get(laDTO.getDataResourceName()); theCount = new Integer(theCount.intValue() + 4); drActualCount.remove(laDTO.getDataResourceName()); drActualCount.put(laDTO.getDataResourceName(), theCount); } } } StringBuffer fileNameBuffer = new StringBuffer(fileNamePrefix); if (dataResource != null) { fileNameBuffer.append("-resource-"); fileNameBuffer.append(dataResource.getKey()); } else if (dataProvider != null) { fileNameBuffer.append("-provider-"); fileNameBuffer.append(dataProvider.getKey()); } fileNameBuffer.append(".png"); String fileName = fileNameBuffer.toString(); String filePath = System.getProperty("java.io.tmpdir") + File.separator + fileName; File fileToCheck = new File(filePath); if (fileToCheck.exists()) { return fileName; } TimeSeriesCollection dataset = new TimeSeriesCollection(); boolean generateChart = false; int count = 1; int dataResourceCount = 1; Collections.sort(activities, new Comparator<LoggedActivityDTO>() { public int compare(LoggedActivityDTO o1, LoggedActivityDTO o2) { if (o1 == null || o2 == null || o1.getDataResourceKey() != null || o2.getDataResourceKey() != null) return -1; return o1.getDataResourceKey().compareTo(o2.getDataResourceKey()); } }); String currentDataResourceKey = activities.get(0).getDataResourceKey(); for (LoggedActivityDTO laDTO : activities) { if (laDTO.getStartDate() != null && laDTO.getEndDate() != null && laDTO.getDurationInMillisecs() > minProcessingTimeToRender) { if (currentDataResourceKey != null && !currentDataResourceKey.equals(laDTO.getDataResourceKey())) { dataResourceCount++; count = count + 1; currentDataResourceKey = laDTO.getDataResourceKey(); } TimeSeries s1 = new TimeSeries(laDTO.getDataResourceName(), "Process time period", laDTO.getEventName(), Hour.class); s1.add(new Hour(laDTO.getStartDate()), count); s1.add(new Hour(laDTO.getEndDate()), count); dataset.addSeries(s1); generateChart = true; } } if (!generateChart) return null; // create a pie chart... final JFreeChart chart = ChartFactory.createTimeSeriesChart(null, null, null, dataset, false, false, false); XYPlot plot = chart.getXYPlot(); plot.setWeight(10); plot.getRangeAxis().setAutoRange(false); plot.getRangeAxis().setRange(0, drCount.size() + 1); plot.getRangeAxis().setAxisLineVisible(false); plot.getRangeAxis().setAxisLinePaint(Color.WHITE); plot.setDomainCrosshairValue(1); plot.setRangeGridlinesVisible(false); plot.getRangeAxis().setVisible(false); plot.getRangeAxis().setLabel("datasets"); XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(); renderer.setItemLabelsVisible(true); MyXYItemLabelGenerator labelGenerator = new MyXYItemLabelGenerator(); labelGenerator.setDataResourceActualCount(drActualCount); labelGenerator.setDataResourceCount(drCount); renderer.setItemLabelGenerator(labelGenerator); List<TimeSeries> seriesList = dataset.getSeries(); for (TimeSeries series : seriesList) { if (((String) series.getRangeDescription()).startsWith("extraction")) { renderer.setSeriesPaint(seriesList.indexOf(series), Color.RED); } else { renderer.setSeriesPaint(seriesList.indexOf(series), Color.BLUE); } renderer.setSeriesStroke(seriesList.indexOf(series), new BasicStroke(7f)); } int imageHeight = 30 * dataResourceCount; if (imageHeight < 100) { imageHeight = 100; } else { imageHeight = imageHeight + 100; } final BufferedImage image = new BufferedImage(900, imageHeight, BufferedImage.TYPE_INT_RGB); KeypointPNGEncoderAdapter adapter = new KeypointPNGEncoderAdapter(); adapter.setQuality(1); try { adapter.encode(image); } catch (IOException e) { logger.error(e.getMessage(), e); } final Graphics2D g2 = image.createGraphics(); g2.setFont(new Font("Arial", Font.PLAIN, 11)); final Rectangle2D chartArea = new Rectangle2D.Double(0, 0, 900, imageHeight); // draw chart.draw(g2, chartArea, null, null); //styling chart.setPadding(new RectangleInsets(0, 0, 0, 0)); chart.setBorderVisible(false); chart.setBackgroundImageAlpha(0); chart.setBackgroundPaint(Color.WHITE); chart.setBorderPaint(Color.LIGHT_GRAY); try { FileOutputStream fOut = new FileOutputStream(filePath); ChartUtilities.writeChartAsPNG(fOut, chart, 900, imageHeight); return fileName; } catch (IOException e) { logger.error(e.getMessage(), e); } return null; }
From source file:org.atomserver.testutils.plot.PerfDataSet.java
static public XYDataset combineDataSets(List<XYDataset> xyDatasetList) { TimeSeriesCollection newTSC = new TimeSeriesCollection(); for (XYDataset xyDataset : xyDatasetList) { TimeSeriesCollection subTSC = (TimeSeriesCollection) xyDataset; List seriesList = subTSC.getSeries(); for (Object seriesObj : seriesList) { TimeSeries series = (TimeSeries) seriesObj; newTSC.addSeries(series);//from w w w . j ava 2 s . c o m } } return newTSC; }