Example usage for org.jfree.data.time TimeSeriesCollection getSeries

List of usage examples for org.jfree.data.time TimeSeriesCollection getSeries

Introduction

In this page you can find the example usage for org.jfree.data.time TimeSeriesCollection getSeries.

Prototype

public List getSeries() 

Source Link

Document

Returns a list of all the series in the collection.

Usage

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;
}