List of usage examples for org.jfree.data.time TimeSeries TimeSeries
public TimeSeries(Comparable name, Class timePeriodClass)
From source file:org.madsonic.controller.StatusChartController.java
public synchronized ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { String type = request.getParameter("type"); int index = Integer.parseInt(request.getParameter("index")); List<TransferStatus> statuses = Collections.emptyList(); if ("stream".equals(type)) { statuses = statusService.getAllStreamStatuses(); } else if ("download".equals(type)) { statuses = statusService.getAllDownloadStatuses(); } else if ("upload".equals(type)) { statuses = statusService.getAllUploadStatuses(); }/*from w ww .j a va 2s. c o m*/ if (index < 0 || index >= statuses.size()) { return null; } TransferStatus status = statuses.get(index); TimeSeries series = new TimeSeries("Kbps", Millisecond.class); TransferStatus.SampleHistory history = status.getHistory(); long to = System.currentTimeMillis(); long from = to - status.getHistoryLengthMillis(); Range range = new DateRange(from, to); if (!history.isEmpty()) { TransferStatus.Sample previous = history.get(0); for (int i = 1; i < history.size(); i++) { TransferStatus.Sample sample = history.get(i); long elapsedTimeMilis = sample.getTimestamp() - previous.getTimestamp(); long bytesStreamed = Math.max(0L, sample.getBytesTransfered() - previous.getBytesTransfered()); double kbps = (8.0 * bytesStreamed / 1024.0) / (elapsedTimeMilis / 1000.0); series.addOrUpdate(new Millisecond(new Date(sample.getTimestamp())), kbps); previous = sample; } } // Compute moving average. series = MovingAverage.createMovingAverage(series, "Kbps", 20000, 5000); // Find min and max values. double min = 100; double max = 250; for (Object obj : series.getItems()) { TimeSeriesDataItem item = (TimeSeriesDataItem) obj; double value = item.getValue().doubleValue(); if (item.getPeriod().getFirstMillisecond() > from) { min = Math.min(min, value); max = Math.max(max, value); } } // Add 10% to max value. max *= 1.1D; // Subtract 10% from min value. min *= 0.9D; TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(series); JFreeChart chart = ChartFactory.createTimeSeriesChart(null, null, null, dataset, false, false, false); XYPlot plot = (XYPlot) chart.getPlot(); plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT); Paint background = new GradientPaint(0, 0, Color.lightGray, 0, IMAGE_HEIGHT, Color.white); plot.setBackgroundPaint(background); XYItemRenderer renderer = plot.getRendererForDataset(dataset); renderer.setSeriesPaint(0, Color.gray.darker()); renderer.setSeriesStroke(0, new BasicStroke(2f)); // Set theme-specific colors. Color bgColor = getBackground(request); Color fgColor = getForeground(request); chart.setBackgroundPaint(bgColor); ValueAxis domainAxis = plot.getDomainAxis(); domainAxis.setRange(range); domainAxis.setTickLabelPaint(fgColor); domainAxis.setTickMarkPaint(fgColor); domainAxis.setAxisLinePaint(fgColor); ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setRange(new Range(min, max)); rangeAxis.setTickLabelPaint(fgColor); rangeAxis.setTickMarkPaint(fgColor); rangeAxis.setAxisLinePaint(fgColor); ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, IMAGE_WIDTH, IMAGE_HEIGHT); return null; }
From source file:net.sourceforge.subsonic.controller.StatusChartController.java
public synchronized ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { String type = request.getParameter("type"); int index = Integer.parseInt(request.getParameter("index")); List<TransferStatus> statuses = Collections.emptyList(); if ("stream".equals(type)) { statuses = statusService.getAllStreamStatuses(); } else if ("download".equals(type)) { statuses = statusService.getAllDownloadStatuses(); } else if ("upload".equals(type)) { statuses = statusService.getAllUploadStatuses(); }//from w ww. j a v a 2s .c o m if (index < 0 || index >= statuses.size()) { return null; } TransferStatus status = statuses.get(index); TimeSeries series = new TimeSeries("Kbps", Millisecond.class); TransferStatus.SampleHistory history = status.getHistory(); long to = System.currentTimeMillis(); long from = to - status.getHistoryLengthMillis(); Range range = new DateRange(from, to); if (!history.isEmpty()) { TransferStatus.Sample previous = history.get(0); for (int i = 1; i < history.size(); i++) { TransferStatus.Sample sample = history.get(i); long elapsedTimeMilis = sample.getTimestamp() - previous.getTimestamp(); long bytesStreamed = Math.max(0L, sample.getBytesTransfered() - previous.getBytesTransfered()); double kbps = (8.0 * bytesStreamed / 1024.0) / (elapsedTimeMilis / 1000.0); series.addOrUpdate(new Millisecond(new Date(sample.getTimestamp())), kbps); previous = sample; } } // Compute moving average. series = MovingAverage.createMovingAverage(series, "Kbps", 20000, 5000); // Find min and max values. double min = 100; double max = 250; for (Object obj : series.getItems()) { TimeSeriesDataItem item = (TimeSeriesDataItem) obj; double value = item.getValue().doubleValue(); if (item.getPeriod().getFirstMillisecond() > from) { min = Math.min(min, value); max = Math.max(max, value); } } // Add 10% to max value. max *= 1.1D; // Subtract 10% from min value. min *= 0.9D; TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(series); JFreeChart chart = ChartFactory.createTimeSeriesChart(null, null, null, dataset, false, false, false); XYPlot plot = (XYPlot) chart.getPlot(); plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_RIGHT); Paint background = new GradientPaint(0, 0, Color.lightGray, 0, IMAGE_HEIGHT, Color.white); plot.setBackgroundPaint(background); XYItemRenderer renderer = plot.getRendererForDataset(dataset); renderer.setSeriesPaint(0, Color.blue.darker()); renderer.setSeriesStroke(0, new BasicStroke(2f)); // Set theme-specific colors. Color bgColor = getBackground(request); Color fgColor = getForeground(request); chart.setBackgroundPaint(bgColor); ValueAxis domainAxis = plot.getDomainAxis(); domainAxis.setRange(range); domainAxis.setTickLabelPaint(fgColor); domainAxis.setTickMarkPaint(fgColor); domainAxis.setAxisLinePaint(fgColor); ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setRange(new Range(min, max)); rangeAxis.setTickLabelPaint(fgColor); rangeAxis.setTickMarkPaint(fgColor); rangeAxis.setAxisLinePaint(fgColor); ChartUtilities.writeChartAsPNG(response.getOutputStream(), chart, IMAGE_WIDTH, IMAGE_HEIGHT); return null; }
From source file:org.jfree.chart.demo.TimeSeriesDemo2.java
/** * A demonstration application showing a quarterly time series containing a null value. * * @param title the frame title./* w w w .j a v a2 s . c om*/ */ public TimeSeriesDemo2(final String title) { super(title); final TimeSeries series = new TimeSeries("Quarterly Data", Quarter.class); series.add(new Quarter(1, 2001), 500.2); series.add(new Quarter(2, 2001), 694.1); series.add(new Quarter(3, 2001), 734.4); series.add(new Quarter(4, 2001), 453.2); series.add(new Quarter(1, 2002), 500.2); series.add(new Quarter(2, 2002), null); series.add(new Quarter(3, 2002), 734.4); series.add(new Quarter(4, 2002), 453.2); final TimeSeriesCollection dataset = new TimeSeriesCollection(series); final JFreeChart chart = ChartFactory.createTimeSeriesChart("Time Series Demo 2", "Time", "Value", dataset, true, true, false); chart.getXYPlot().addRangeMarker(new ValueMarker(550.0)); final Quarter q = new Quarter(2, 2002); chart.getXYPlot().addDomainMarker(new ValueMarker(q.getMiddleMillisecond())); final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(chartPanel); }
From source file:arduinouno.TimeChartGenerator.java
/** * Constructs a new dynamic chart application. * * @param title the frame title.// w w w . j av a 2 s . c o m * @param theSerialLink * @param analogInputs */ public TimeChartGenerator(final String title, final SerialReader theSerialLink, Boolean[] analogInputs) { super(title); this.analogInputs = analogInputs; TimeSeriesCollection dataset = null, dataset0 = null, dataset1 = null, dataset2 = null, dataset3 = null, dataset4 = null, dataset5 = null; this.series = new TimeSeries("offset", Millisecond.class); //Serie de datos para el offset hacia la izquierda - (Magia) dataset = new TimeSeriesCollection(this.series); if (analogInputs[0]) { this.series0 = new TimeSeries("Read A0", Millisecond.class); //Serie de datos A0 dataset0 = new TimeSeriesCollection(this.series0); } if (analogInputs[1]) { this.series1 = new TimeSeries("Read A1", Millisecond.class); //Serie de datos A1 dataset1 = new TimeSeriesCollection(this.series1); } if (analogInputs[2]) { this.series2 = new TimeSeries("Read A2", Millisecond.class); //Serie de datos A2 dataset2 = new TimeSeriesCollection(this.series2); } if (analogInputs[3]) { this.series3 = new TimeSeries("Read A3", Millisecond.class); //Serie de datos A3 dataset3 = new TimeSeriesCollection(this.series3); } if (analogInputs[4]) { this.series4 = new TimeSeries("Read A4", Millisecond.class); //Serie de datos A4 dataset4 = new TimeSeriesCollection(this.series4); } if (analogInputs[5]) { this.series5 = new TimeSeries("Read A5", Millisecond.class); //Serie de datos A5 dataset5 = new TimeSeriesCollection(this.series5); } final JFreeChart chart = createChart(dataset, dataset0, dataset1, dataset2, dataset3, dataset4, dataset5); timer.setInitialDelay(1000); //Sets background color of chart chart.setBackgroundPaint(Color.LIGHT_GRAY); //Create Chartpanel for chart area chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(800, 500)); timer.start(); this.serialLink = theSerialLink; }
From source file:old.MonitoringChart.java
private XYDataset createDataset() { cpuSeries = new TimeSeries("CPU Load", Millisecond.class); memorySeries = new TimeSeries("Memory Usage", Millisecond.class); diskSeries = new TimeSeries("Disk Usage", Millisecond.class); TimeSeriesCollection dataset = new TimeSeriesCollection(); dataset.addSeries(cpuSeries);//www.java2s . com dataset.addSeries(memorySeries); dataset.addSeries(diskSeries); return dataset; }
From source file:net.sf.statcvs.output.xml.chart.TimeLineChart.java
void addTimeLine(TimeLine timeLine) { TimeSeries result = new TimeSeries(timeLine.getTitle(), Millisecond.class); Iterator it = timeLine.getDataPoints().iterator(); while (it.hasNext()) { TimePoint timePoint = (TimePoint) it.next(); result.add(new Millisecond(timePoint.getDate()), timePoint.getValue()); }//from w w w . jav a 2 s.c om tsc.addSeries(result); }
From source file:net.sf.clichart.chart.TimeSeriesChartBuilder.java
protected void initialiseSeriesColumn(String title) { TimeSeries timeSeries = new TimeSeries(title, Second.class); m_timeSeriesCollection.addSeries(timeSeries); }
From source file:org.jfree.chart.demo.XYBarChartDemo2.java
/** * Constructs the demo application.// w w w.j a v a 2s. co m * * @param title the frame title. */ public XYBarChartDemo2(final String title) { super(title); // create a dataset... final TimeSeries series1 = new TimeSeries("Series 1", Day.class); series1.add(new Day(1, 1, 2003), 54.3); series1.add(new Day(2, 1, 2003), 20.3); series1.add(new Day(3, 1, 2003), 43.4); series1.add(new Day(4, 1, 2003), -12.0); final TimeSeries series2 = new TimeSeries("Series 2", Day.class); series2.add(new Day(1, 1, 2003), 8.0); series2.add(new Day(2, 1, 2003), 16.0); series2.add(new Day(3, 1, 2003), 21.0); series2.add(new Day(4, 1, 2003), 5.0); final TimeSeriesCollection data = new TimeSeriesCollection(); data.setDomainIsPointsInTime(false); data.addSeries(series1); data.addSeries(series2); final JFreeChart chart = createChart(data); // add the chart to a panel... final ChartPanel chartPanel = new ChartPanel(chart); chartPanel.setPreferredSize(new java.awt.Dimension(500, 300)); setContentPane(chartPanel); }
From source file:org.jfree.chart.demo.TimeSeriesDemo3.java
/** * A demonstration application showing a quarterly time series containing a null value. * * @param title the frame title./*from w ww . j av a 2 s. co m*/ */ public TimeSeriesDemo3(final String title) { super(title); final TimeSeries series1 = new TimeSeries("Series 1", Month.class); series1.add(new Month(1, 2002), 500.2); series1.add(new Month(2, 2002), 694.1); series1.add(new Month(3, 2002), 734.4); series1.add(new Month(4, 2002), 453.2); series1.add(new Month(5, 2002), 500.2); series1.add(new Month(6, 2002), 345.6); series1.add(new Month(7, 2002), 500.2); series1.add(new Month(8, 2002), 694.1); series1.add(new Month(9, 2002), 734.4); series1.add(new Month(10, 2002), 453.2); series1.add(new Month(11, 2002), 500.2); series1.add(new Month(12, 2002), 345.6); final TimeSeries series2 = new TimeSeries("Series 2", Month.class); series2.add(new Month(1, 2002), 234.1); series2.add(new Month(2, 2002), 623.7); series2.add(new Month(3, 2002), 642.5); series2.add(new Month(4, 2002), 651.4); series2.add(new Month(5, 2002), 643.5); series2.add(new Month(6, 2002), 785.6); series2.add(new Month(7, 2002), 234.1); series2.add(new Month(8, 2002), 623.7); series2.add(new Month(9, 2002), 642.5); series2.add(new Month(10, 2002), 651.4); series2.add(new Month(11, 2002), 643.5); series2.add(new Month(12, 2002), 785.6); 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:jfreeechart.DynamicDataDemo.java
/** * Constructs a new demonstration application. * * @param title the frame title./*from w ww. ja va 2s. c om*/ */ public DynamicDataDemo(final String title) { super(title); this.series = new TimeSeries("Random Data", Millisecond.class); final TimeSeriesCollection dataset = new TimeSeriesCollection(this.series); final JFreeChart chart = createChart(dataset); final ChartPanel chartPanel = new ChartPanel(chart); final JButton button = new JButton("Add New Data Item"); button.setActionCommand("ADD_DATA"); button.addActionListener(this); final JPanel content = new JPanel(new BorderLayout()); content.add(chartPanel); content.add(button, BorderLayout.SOUTH); chartPanel.setPreferredSize(new java.awt.Dimension(500, 270)); setContentPane(content); }