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

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

Introduction

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

Prototype

public void addSeries(TimeSeries series) 

Source Link

Document

Adds a series to the collection and sends a DatasetChangeEvent to all registered listeners.

Usage

From source file:oscar.oscarEncounter.oscarMeasurements.pageUtil.MeasurementGraphAction2.java

JFreeChart labChartRef(String demographicNo, String typeIdName, String typeIdName2, String patientName,
        String chartTitle) {// ww w .  j  ava  2s  . c om
    org.jfree.data.time.TimeSeriesCollection dataset = new org.jfree.data.time.TimeSeriesCollection();
    ArrayList<EctMeasurementsDataBean> list = getList(demographicNo, typeIdName);
    String typeYAxisName = "";
    ArrayList<OHLCDataItem> dataItems = new ArrayList<OHLCDataItem>();
    if (typeIdName.equals("BP")) {
        log.debug("Using BP LOGIC FOR type 1 ");
        EctMeasurementsDataBean sampleLine = list.get(0);
        typeYAxisName = sampleLine.getTypeDescription();
        TimeSeries systolic = new TimeSeries("Systolic", Day.class);
        TimeSeries diastolic = new TimeSeries("Diastolic", Day.class);
        for (EctMeasurementsDataBean mdb : list) { // dataVector) {
            String[] str = mdb.getDataField().split("/");

            systolic.addOrUpdate(new Day(mdb.getDateObservedAsDate()), Double.parseDouble(str[0]));
            diastolic.addOrUpdate(new Day(mdb.getDateObservedAsDate()), Double.parseDouble(str[1]));
        }
        dataset.addSeries(diastolic);
        dataset.addSeries(systolic);
    } else {
        log.debug("Not Using BP LOGIC FOR type 1 ");
        // get the name from the TimeSeries
        EctMeasurementsDataBean sampleLine = list.get(0);
        String typeLegendName = sampleLine.getTypeDisplayName();
        typeYAxisName = sampleLine.getTypeDescription(); // this should be the type of measurement
        TimeSeries newSeries = new TimeSeries(typeLegendName, Day.class);
        for (EctMeasurementsDataBean mdb : list) { //dataVector) {
            newSeries.addOrUpdate(new Day(mdb.getDateObservedAsDate()), Double.parseDouble(mdb.getDataField()));
            try {
                Hashtable h = getMeasurementsExt(mdb.getId());
                if (h != null && h.containsKey("minimum")) {
                    String min = (String) h.get("minimum");
                    String max = (String) h.get("maximum");
                    double open = Double.parseDouble(min.trim());
                    double high = Double.parseDouble(max.trim());
                    double low = Double.parseDouble(min.trim());
                    double close = Double.parseDouble(max.trim());
                    double volume = 1045;
                    dataItems
                            .add(new OHLCDataItem(mdb.getDateObservedAsDate(), open, high, low, close, volume));
                }
            } catch (Exception et) {
                MiscUtils.getLogger().error("Error", et);
            }
        }
        dataset.addSeries(newSeries);
    }

    JFreeChart chart = ChartFactory.createTimeSeriesChart(chartTitle, "Days", typeYAxisName, dataset, true,
            true, true);

    XYPlot plot = chart.getXYPlot();
    plot.getDomainAxis().setAutoRange(true);

    log.debug("LEN " + plot.getDomainAxis().getLowerBound() + " ddd " + plot.getDomainAxis().getUpperMargin()
            + " eee " + plot.getDomainAxis().getLowerMargin());
    plot.getDomainAxis().setUpperMargin(plot.getDomainAxis().getUpperMargin() * 6);
    plot.getDomainAxis().setLowerMargin(plot.getDomainAxis().getLowerMargin() * 6);
    plot.getRangeAxis().setUpperMargin(plot.getRangeAxis().getUpperMargin() * 1.7);

    plot.getDomainAxis().setUpperMargin(0.9);
    plot.getDomainAxis().setLowerMargin(0.9);
    plot.getRangeAxis().setUpperMargin(plot.getRangeAxis().getUpperMargin() * 4);

    ValueAxis va = plot.getRangeAxis();
    va.setAutoRange(true);
    XYItemRenderer renderer = plot.getRenderer(); //DateFormat.getInstance()
    XYItemLabelGenerator generator = new StandardXYItemLabelGenerator("{1} \n {2}",
            new SimpleDateFormat("yyyy.MM.dd"), new DecimalFormat("0.00"));
    renderer.setSeriesItemLabelGenerator(0, generator);//setLabelGenerator(generator);

    renderer.setBaseItemLabelsVisible(true);
    plot.setBackgroundPaint(Color.WHITE);
    plot.setDomainCrosshairPaint(Color.GRAY);

    if (renderer instanceof XYLineAndShapeRenderer) {
        XYLineAndShapeRenderer rend = (XYLineAndShapeRenderer) renderer;
        rend.setBaseShapesVisible(true);
        rend.setBaseShapesFilled(true);
    }

    plot.setRenderer(renderer);

    if (dataItems != null && dataItems.size() > 0) {
        OHLCDataItem[] ohlc = dataItems.toArray(new OHLCDataItem[dataItems.size()]);
        XYDataset referenceRangeDataset = new DefaultOHLCDataset("Reference Range", ohlc);
        plot.setRenderer(1, setAxisAndDataSet(1, plot, plot.getRangeAxis(), referenceRangeDataset, Color.GREEN,
                new HighLowRenderer()));
    }

    /////

    return chart;
}

From source file:org.gbif.portal.web.controller.dataset.IndexingHistoryController.java

/**
 * Create a time series graphic to display indexing processes.
 * /*from   w  ww.  j ava2 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:oscar.oscarEncounter.oscarMeasurements.pageUtil.MeasurementGraphAction2.java

JFreeChart referenceRangeChart(String demographicNo, String typeIdName, String typeIdName2, String patientName,
        String chartTitle) {/*from w  w  w.  j  av  a2 s.co  m*/
    org.jfree.data.time.TimeSeriesCollection dataset = new org.jfree.data.time.TimeSeriesCollection();

    ArrayList<EctMeasurementsDataBean> list = getList(demographicNo, typeIdName);
    ArrayList<OHLCDataItem> dataItems = new ArrayList<OHLCDataItem>();
    String typeYAxisName = "";

    if (typeIdName.equals("BP")) {
        log.debug("Using BP LOGIC FOR type 1 ");
        EctMeasurementsDataBean sampleLine = list.get(0);
        typeYAxisName = sampleLine.getTypeDescription();
        TimeSeries systolic = new TimeSeries("Systolic", Day.class);
        TimeSeries diastolic = new TimeSeries("Diastolic", Day.class);
        for (EctMeasurementsDataBean mdb : list) { // dataVector) {
            String[] str = mdb.getDataField().split("/");

            systolic.addOrUpdate(new Day(mdb.getDateObservedAsDate()), Double.parseDouble(str[0]));
            diastolic.addOrUpdate(new Day(mdb.getDateObservedAsDate()), Double.parseDouble(str[1]));
        }
        dataset.addSeries(diastolic);
        dataset.addSeries(systolic);

    } else {
        log.debug("Not Using BP LOGIC FOR type 1 ");
        // get the name from the TimeSeries
        EctMeasurementsDataBean sampleLine = list.get(0);
        String typeLegendName = sampleLine.getTypeDisplayName();
        typeYAxisName = sampleLine.getTypeDescription(); // this should be the type of measurement
        TimeSeries newSeries = new TimeSeries(typeLegendName, Day.class);
        for (EctMeasurementsDataBean mdb : list) { //dataVector) {
            newSeries.addOrUpdate(new Day(mdb.getDateObservedAsDate()), Double.parseDouble(mdb.getDataField()));

            try {
                Hashtable h = getMeasurementsExt(mdb.getId());
                if (h != null && h.containsKey("minimum")) {
                    String min = (String) h.get("minimum");
                    String max = (String) h.get("maximum");
                    double open = Double.parseDouble(min.trim());
                    double high = Double.parseDouble(max.trim());
                    double low = Double.parseDouble(min.trim());
                    double close = Double.parseDouble(max.trim());
                    double volume = 1045;
                    dataItems
                            .add(new OHLCDataItem(mdb.getDateObservedAsDate(), open, high, low, close, volume));
                }
            } catch (Exception et) {
                MiscUtils.getLogger().error("Error", et);
            }

        }
        dataset.addSeries(newSeries);
    }

    OHLCDataItem[] ohlc = dataItems.toArray(new OHLCDataItem[dataItems.size()]);
    JFreeChart chart = ChartFactory.createHighLowChart("HighLowChartDemo2", "Time", "Value",
            new DefaultOHLCDataset("DREFERENCE RANGE", ohlc), true);
    XYPlot plot = (XYPlot) chart.getPlot();

    //        HighLowRenderer renderer = (HighLowRenderer) plot.getRenderer();
    //        renderer.
    //        renderer.setOpenTickPaint(Color.green);
    //        renderer.setCloseTickPaint(Color.black);

    plot.setDataset(1, dataset);

    plot.getDomainAxis().setAutoRange(true);

    log.debug("LEN " + plot.getDomainAxis().getLowerBound() + " ddd " + plot.getDomainAxis().getUpperMargin()
            + " eee " + plot.getDomainAxis().getLowerMargin());
    //plot.getDomainAxis().setUpperMargin(plot.getDomainAxis().getUpperMargin()*6);
    //plot.getDomainAxis().setLowerMargin(plot.getDomainAxis().getLowerMargin()*6);
    // plot.getRangeAxis().setUpperMargin(plot.getRangeAxis().getUpperMargin()*1.7);

    plot.getDomainAxis().setUpperMargin(0.9);
    plot.getDomainAxis().setLowerMargin(0.9);
    plot.getRangeAxis().setUpperMargin(plot.getRangeAxis().getUpperMargin() * 4);

    ValueAxis va = plot.getRangeAxis();
    va.setAutoRange(true);
    XYItemRenderer renderer = plot.getRenderer(); //DateFormat.getInstance()
    XYItemLabelGenerator generator = new StandardXYItemLabelGenerator("{1} \n {2}",
            new SimpleDateFormat("yyyy.MM.dd"), new DecimalFormat("0.00"));
    renderer.setSeriesItemLabelGenerator(0, generator);//setLabelGenerator(generator);

    renderer.setBaseItemLabelsVisible(true);
    plot.setBackgroundPaint(Color.WHITE);
    plot.setDomainCrosshairPaint(Color.GRAY);

    if (renderer instanceof XYLineAndShapeRenderer) {
        XYLineAndShapeRenderer rend = (XYLineAndShapeRenderer) renderer;
        rend.setBaseShapesVisible(true);
        rend.setBaseShapesFilled(true);
    }

    plot.setRenderer(renderer);
    chart.setBackgroundPaint(Color.white);
    return chart;
}

From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java

private IntervalXYDataset getDailySiteUserDataSet() {
    List<ServerWideStatsRecord> siteCreatedDeletedList = getSiteCreatedDeletedStats("daily");
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    if (siteCreatedDeletedList != null) {
        TimeSeries s1 = new TimeSeries(msgs.getString("legend_site_created"), Day.class);
        TimeSeries s2 = new TimeSeries(msgs.getString("legend_site_deleted"), Day.class);

        for (ServerWideStatsRecord login : siteCreatedDeletedList) {
            Day day = new Day((Date) login.get(0));
            s1.add(day, (Long) login.get(1));
            s2.add(day, (Long) login.get(2));
        }//from   w  w w  .j a va2s .com

        dataset.addSeries(s1);
        dataset.addSeries(s2);
    }

    List<ServerWideStatsRecord> newUserList = getNewUserStats("daily");
    if (newUserList != null) {
        TimeSeries s3 = new TimeSeries(msgs.getString("legend_new_user"), Day.class);

        for (ServerWideStatsRecord login : newUserList) {
            Day day = new Day((Date) login.get(0));
            s3.add(day, (Long) login.get(1));
        }

        dataset.addSeries(s3);
    }

    return dataset;
}

From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java

private IntervalXYDataset getWeeklySiteUserDataSet() {
    List<ServerWideStatsRecord> siteCreatedDeletedList = getSiteCreatedDeletedStats("weekly");
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    if (siteCreatedDeletedList != null) {
        TimeSeries s1 = new TimeSeries(msgs.getString("legend_site_created"), Week.class);
        TimeSeries s2 = new TimeSeries(msgs.getString("legend_site_deleted"), Week.class);

        for (ServerWideStatsRecord login : siteCreatedDeletedList) {
            Week week = new Week((Date) login.get(0));
            s1.add(week, (Long) login.get(1));
            s2.add(week, (Long) login.get(2));
        }/*  w w w.j  av a2  s.c o m*/

        dataset.addSeries(s1);
        dataset.addSeries(s2);
    }

    List<ServerWideStatsRecord> newUserList = getNewUserStats("weekly");
    if (newUserList != null) {
        TimeSeries s3 = new TimeSeries(msgs.getString("legend_new_user"), Week.class);

        for (ServerWideStatsRecord login : newUserList) {
            Week week = new Week((Date) login.get(0));
            s3.add(week, (Long) login.get(1));
        }

        dataset.addSeries(s3);
    }

    return dataset;
}

From source file:org.sakaiproject.sitestats.impl.ServerWideReportManagerImpl.java

private IntervalXYDataset getMonthlySiteUserDataSet() {
    List<ServerWideStatsRecord> siteCreatedDeletedList = getSiteCreatedDeletedStats("monthly");
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    if (siteCreatedDeletedList != null) {
        TimeSeries s1 = new TimeSeries(msgs.getString("legend_site_created"), Month.class);
        TimeSeries s2 = new TimeSeries(msgs.getString("legend_site_deleted"), Month.class);

        for (ServerWideStatsRecord login : siteCreatedDeletedList) {
            Month month = new Month((Date) login.get(0));
            s1.add(month, (Long) login.get(1));
            s2.add(month, (Long) login.get(2));
        }/*from www.  jav  a2  s. co  m*/

        dataset.addSeries(s1);
        dataset.addSeries(s2);
    }

    List<ServerWideStatsRecord> newUserList = getNewUserStats("monthly");
    if (newUserList != null) {
        TimeSeries s3 = new TimeSeries(msgs.getString("legend_new_user"), Month.class);

        for (ServerWideStatsRecord login : newUserList) {
            Month month = new Month((Date) login.get(0));
            s3.add(month, (Long) login.get(1));
        }

        dataset.addSeries(s3);
    }

    return dataset;
}

From source file:org.n52.server.io.render.DiagramRenderer.java

public TimeSeriesCollection createDataset(Map<String, OXFFeatureCollection> entireCollMap,
        TimeseriesProperties prop, String observedProperty, boolean compress) {

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    OXFFeatureCollection obsColl = entireCollMap.get(prop.getOffering() + "@" + prop.getServiceUrl());

    String foiID = prop.getFeature();
    String obsPropID = prop.getPhenomenon();
    String procID = prop.getProcedure();

    // only if the observation concerns the observedProperty, it
    // will be added to the dataset
    if (obsPropID.equals(observedProperty)) {

        String[] foiIds = new String[] { foiID };
        String[] procedureIds = new String[] { procID };
        String[] observedPropertyIds = new String[] { obsPropID };
        ObservationSeriesCollection seriesCollection = new ObservationSeriesCollection(obsColl, foiIds,
                observedPropertyIds, procedureIds, true);

        ////from w w  w.  jav  a  2s  . co m
        // now let's put in the date-value pairs.
        // ! But put it only in if it differs from the previous
        // one !
        //

        TimeSeries timeSeries = new TimeSeries(prop.getTimeseriesId(), FixedMillisecond.class);

        TimeseriesFactory factory = new TimeseriesFactory(seriesCollection);
        if (seriesCollection.getSortedTimeArray().length > 0) {
            if (compress) {
                timeSeries = factory.compressToTimeSeries(prop.getTimeseries(), isOverview,
                        prop.getGraphStyle());
            } else {
                timeSeries = factory.createTimeSeries(prop.getTimeseries(), prop.getGraphStyle());
            }
        }
        dataset.addSeries(timeSeries);
    }

    dataset.setDomainIsPointsInTime(true);

    return dataset;
}

From source file:de.fischer.thotti.reportgen.diagram.ChartGenerator.java

public ChartMetaData generateAllVariantsChart(final String testId) {
    File chartFile;//from   w w  w.  j  a  v  a2s.com
    try {
        final List<TestVariant> variants = persistenceHelper.findAllVariants(testId);
        final TimeSeriesCollection collection = new TimeSeriesCollection();

        String svgFilename = String.format("%s.svg", testId);

        chartFile = new File(baseDir, svgFilename);

        for (TestVariant variant : variants) {
            TimeSeries series = new TimeSeries(String.format("Average of %s", variant.getCombinedId()),
                    Day.class);
            TimeSeries mediaSeries = new TimeSeries("Median of " + variant, Day.class);

            List<NDResultEntity> results = persistenceHelper.findAllResultsForVariant(variant);

            SortedSet<NDResultEntity> sortedSet = new TreeSet<NDResultEntity>(
                    new TestVariantModel.DateComparator());

            sortedSet.addAll(results);

            Calendar now = Calendar.getInstance();

            now.add(Calendar.DATE, 1);

            Iterator<Measurement> itr = new AverageDayCombinerIterator(sortedSet.iterator());
            Iterator<DatePoint> medianItr = new MedianIterator(sortedSet.iterator());

            while (itr.hasNext()) {
                Measurement singleResult = itr.next();

                Date startDate = singleResult.getPointInTime();

                double timeInMS = singleResult.getDuration();
                double timeInSecs = convertMilliSecsToSeconds(timeInMS);

                series.add(new Day(startDate), timeInSecs);
            }

            while (medianItr.hasNext()) {
                DatePoint singleResult = medianItr.next();

                Day day = new Day(singleResult.getPointInTime());
                double value = convertMilliSecsToSeconds(singleResult.getValue());

                mediaSeries.add(day, value);
            }

            collection.addSeries(series);
            collection.addSeries(mediaSeries);
        }

        final JFreeChart chart = createChart(testId, collection);

        saveChartAsSVG(chart, svgFilename);

        System.out.println(String.format("Written %s", chartFile.toString()));

        return new ChartMetaData().withFilename(chartFile.getName()).withWidth(DEFAULT_CHAR_WIDTH)
                .withHeight(DEFAULT_CHAR_HEIGHT).withFormat("SVG");

    } catch (Exception ioe) {
        // @todo Throw an better exception!
        ioe.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
    }

    return null;
}

From source file:edu.ucla.stat.SOCR.chart.demo.XYAreaChartDemo2.java

protected XYDataset createDataset(boolean isDemo) {
    if (isDemo) {
        TimeSeries series1 = new TimeSeries("Random 1");
        double value = 0.0;
        Day day = new Day();
        for (int i = 0; i < 200; i++) {
            value = value + Math.random() - 0.5;
            series1.add(day, value);//from   ww  w  . j  ava  2  s.c o  m
            day = (Day) day.next();
        }

        TimeSeriesCollection dataset = new TimeSeriesCollection(series1);
        return dataset;
    } else {
        setArrayFromTable();

        if (independentVarLength != dependentVarLength) {
            JOptionPane.showMessageDialog(this, "The number of X and Y doesn't match!");
            resetChart();
            return null;
        }

        String[][] x = new String[xyLength][independentVarLength];
        double[][] y = new double[xyLength][dependentVarLength];
        int[][] skipy = new int[xyLength][dependentVarLength];

        for (int index = 0; index < independentVarLength; index++)
            for (int i = 0; i < xyLength; i++)
                x[i][index] = indepValues[i][index];

        for (int index = 0; index < dependentVarLength; index++)
            for (int i = 0; i < xyLength; i++) {
                if (depValues[i][index] == null || depValues[i][index].length() == 0)
                    skipy[i][index] = 1;
                else
                    y[i][index] = Double.parseDouble(depValues[i][index]);
            }

        TimeSeriesCollection dataset = new TimeSeriesCollection();
        TimeSeries series;

        for (int i = 0; i < independentVarLength; i++) {
            String serieName = independentHeaders[i];
            if (independentHeaders[i].lastIndexOf(":") != -1)
                serieName = independentHeaders[i].substring(0, independentHeaders[i].lastIndexOf(":"));
            series = new TimeSeries(serieName);
            for (int j = 0; j < xyLength; j++) {
                if (x[j][i] != null && skipy[j][i] != 1)
                    series.add(DateParser.parseDay(x[j][i]), y[j][i]);
                //System.out.println("adding :("+x[j][i]+","+y[j][i]+","+independentHeaders[i]+")" );
            }
            dataset.addSeries(series);
        }

        return dataset;
    }
}

From source file:org.n52.server.sos.render.DiagramRenderer.java

public TimeSeriesCollection createDataset(Map<String, OXFFeatureCollection> entireCollMap,
        TimeseriesProperties prop, String observedProperty, boolean compress) {

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    OXFFeatureCollection obsColl = entireCollMap.get(prop.getOffering() + "@" + prop.getServiceUrl());

    String foiID = prop.getFeature();
    String obsPropID = prop.getPhenomenon();
    String procID = prop.getProcedure();

    // only if the observation concerns the observedProperty, it
    // will be added to the dataset
    if (obsPropID.equals(observedProperty)) {

        String[] foiIds = new String[] { foiID };
        String[] procedureIds = new String[] { procID };
        String[] observedPropertyIds = new String[] { obsPropID };
        ObservationSeriesCollection seriesCollection = new ObservationSeriesCollection(obsColl, foiIds,
                observedPropertyIds, procedureIds, true);

        ///* ww w  .ja v  a  2  s.c o m*/
        // now let's put in the date-value pairs.
        // ! But put it only in if it differs from the previous
        // one !
        //

        //TimeSeries timeSeries = new TimeSeries(foiID + "___" + obsPropID + "___" + procID, Second.class);
        TimeSeries timeSeries = new TimeSeries(prop.getTimeseriesId(), Second.class);

        if (seriesCollection.getSortedTimeArray().length > 0) {
            if (compress) {
                timeSeries = compressToTimeSeries(seriesCollection, prop.getTimeseries(), isOverview,
                        prop.getGraphStyle());
            } else {
                timeSeries = createTimeSeries(seriesCollection, prop.getTimeseries(), prop.getGraphStyle());
            }
        }
        dataset.addSeries(timeSeries);
    }

    dataset.setDomainIsPointsInTime(true);

    return dataset;
}