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

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

Introduction

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

Prototype

public TimeSeriesCollection() 

Source Link

Document

Constructs an empty dataset, tied to the default timezone.

Usage

From source file:edu.unibonn.kmeans.mapreduce.plotting.TimeSeriesPlotter_KMeans.java

private XYDataset createDataset(ArrayList<Cluster_KMeans> clusters, LocalDateTime from) {
    final TimeSeriesCollection dataset = new TimeSeriesCollection();

    //      for (int i = 0; i < clusters.size(); i++)
    //      {//from   w  ww . java2s  .co m
    //         Cluster_KMeans current_cluster = clusters.get(i);   
    //         double[] center_of_mass = current_cluster.getCenter_of_mass();
    //         
    //         final TimeSeries s1 = new TimeSeries("Cluster_"+current_cluster.getCluster_id(), Hour.class);
    //
    //         for (int j = 0; j < 24; j++)
    //         {
    //            s1.add(new Hour( j, from.getDayOfMonth(), from.getMonthValue(), from.getYear() ), center_of_mass[j]);
    //         }
    //         
    //         dataset.addSeries(s1);
    //      }

    for (int i = 0; i < clusters.size(); i++) {
        Cluster_KMeans current_cluster = clusters.get(i);
        ArrayList<Day_24d> member_time_series = current_cluster.getMembership();

        for (Iterator iterator = member_time_series.iterator(); iterator.hasNext();) {
            final TimeSeries s1 = new TimeSeries("Cluster_" + current_cluster.getCluster_id(), Hour.class);

            Day_24d current_series = (Day_24d) iterator.next();

            for (int j = 0; j < 24; j++) {
                s1.add(new Hour(j, from.getDayOfMonth(), from.getMonthValue(), from.getYear()),
                        current_series.getMeasurement(j));
            }

            dataset.addSeries(s1);
        }
    }

    dataset.setDomainIsPointsInTime(true);

    return dataset;
}

From source file:compecon.dashboard.panel.IndustriesPanel.java

protected ChartPanel createGoodTypeSupplyPanel(Currency currency, GoodType outputGoodType) {
    TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection();

    timeSeriesCollection/*from  www.j a  va  2  s  . c om*/
            .addSeries(ApplicationContext.getInstance().getModelRegistry().getNationalEconomyModel(currency)
                    .getPricingBehaviourModel(outputGoodType).offerModel.getTimeSeries());
    timeSeriesCollection
            .addSeries(ApplicationContext.getInstance().getModelRegistry().getNationalEconomyModel(currency)
                    .getPricingBehaviourModel(outputGoodType).soldModel.getTimeSeries());
    timeSeriesCollection.addSeries(ApplicationContext.getInstance().getModelRegistry()
            .getNationalEconomyModel(currency).getIndustryModel(outputGoodType).inventoryModel.getTimeSeries());
    timeSeriesCollection.addSeries(ApplicationContext.getInstance().getModelRegistry()
            .getNationalEconomyModel(currency).getIndustryModel(outputGoodType).outputModel.getTimeSeries());

    JFreeChart chart = ChartFactory.createTimeSeriesChart(outputGoodType.toString() + " Supply", "Date",
            "Supply", (XYDataset) timeSeriesCollection, true, true, false);
    configureChart(chart);
    return new ChartPanel(chart);
}

From source file:org.jfree.data.time.TimeSeriesCollectionTest.java

/**
 * A test for bug report 1170825./*from  w w  w. j av  a2 s .com*/
 */
@Test
public void test1170825() {
    TimeSeries s1 = new TimeSeries("Series1");
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s1);
    try {
        /* TimeSeries s = */ dataset.getSeries(1);
    } catch (IllegalArgumentException e) {
        // correct outcome
    } catch (IndexOutOfBoundsException e) {
        assertTrue(false); // wrong outcome
    }
}

From source file:org.orbeon.oxf.processor.serializer.legacy.JFreeChartSerializer.java

protected TimeSeriesCollection createTimeSeriesDataset(ChartConfig chartConfig, Document data) {
    TimeSeriesCollection ds = new TimeSeriesCollection();
    for (Iterator i = chartConfig.getValueIterator(); i.hasNext();) {
        Value value = (Value) i.next();/*from   ww  w.  j av a 2s  .  c o  m*/
        String title = value.getTitle();
        Iterator x = XPathUtils.selectIterator(data, value.getCategories());
        Iterator y = XPathUtils.selectIterator(data, value.getSeries());

        TimeSeries timeSeries = new TimeSeries(title, FixedMillisecond.class);
        while (x.hasNext() && y.hasNext()) {
            Node s = (Node) y.next();
            Node c = (Node) x.next();
            SimpleDateFormat sdf = new SimpleDateFormat(chartConfig.getDateFormat());
            FixedMillisecond fm;
            try {
                fm = new FixedMillisecond(sdf.parse(c.getStringValue()).getTime());
            } catch (java.text.ParseException pe) {
                throw new OXFException(
                        "Date Format " + chartConfig.getDateFormat() + " does not match with the date data",
                        pe);
            }
            Double ordinate = new Double(s.getStringValue());
            timeSeries.add(fm, ordinate);
        }
        ds.addSeries(timeSeries);
    }
    return ds;
}

From source file:de.fau.amos.ChartRenderer.java

/**
 * /*from   w  w w . j  a  v a  2 s  .c  om*/
 * Creates TimeSeriesCollection by querying energy data from database.
 * 
 * @param granularity Accuracy of distinguishment of displayed values (Summarise data to hours, days, months, years).
 * @param startTime Start of queried period.
 * @param endTime End of queried period.
 * @param sumOrAvg Shall values be added or averaged.
 * @param groupParameters Controlpoints that are affected.
 * @param unit Sets Unit (kWh or kWh/TNF)
 * @return TimeSeriesCollection that privedes the basis for creation of a png-chart
 */
private TimeSeriesCollection createTimeCollection(String granularity, String startTime, String endTime,
        String sumOrAvg, String groupParameters, String unit) {

    //time series containing all data
    TimeSeriesCollection collection = new TimeSeriesCollection();
    //split groupParameter string to get all queryed groups seperated
    groupParameters = groupParameters.replace("||", "splitHere");
    String[] groups = groupParameters.split("splitHere");

    //handle groups one after another
    for (int i = 0; i < groups.length; i++) {
        //get group name
        String groupName = groups[i].contains("'") ? groups[i].substring(0, groups[i].indexOf("'")) : groups[i];
        groups[i] = groups[i].contains("'") ? groups[i].substring(groupName.length()) : "";

        if (!groups[i].contains("|")) {
            continue;
        }
        //get used plants
        String plants = groups[i].substring(groups[i].indexOf("|") + 1);

        //prepare queryString
        groups[i] = groups[i].substring(0, groups[i].indexOf("|"));

        //generate series for group
        TimeSeries series = new TimeSeries(groupName);

        ResultSet rs = null;

        //skip group if nothing is selected to query
        if (groups[i].trim() != "") {
            if ("1".equals(unit)) {
                //query kWh
                rs = SQL.queryToResultSet("select * from (select round(" + sumOrAvg
                        + "(gruppenWert),4), gruppenZeit from(select " + sumOrAvg
                        + "(wert) as gruppenWert,control_point_name, zeit1 as gruppenZeit from (select "
                        + sumOrAvg + "(value)as wert,control_point_name,date_trunc('" + granularity
                        + "',measure_time)as zeit1 from measures inner join controlpoints on measures.controlpoint_id=controlpoints.controlpoints_id where measure_time >= '"
                        + startTime + "' AND measure_time < '" + endTime + "' AND controlpoints_id in("
                        + groups[i]
                        + ") group by measure_time,control_point_name)as data group by zeit1,control_point_name)as groupedByTime group by gruppenZeit)as result order by gruppenZeit"
                        + ";");
            } else if ("2".equals(unit)) {
                //query kWh/TNF (only as sum, not avg)

                rs = SQL.queryToResultSet(

                        "select * from (select round(sum(gruppenWert)/(select sum(am) from(select sum(amount)as am,date_trunc('"
                                + granularity
                                + "',measure_time)as zeit from productiondata inner join controlpoints on productiondata.controlpoint_id=controlpoints.controlpoints_id "
                                + "where productiondata.measure_time >= '" + startTime
                                + "' AND productiondata.measure_time < '" + endTime
                                + "' AND reference_point='t' AND plant_id in(" + plants
                                + ") group by measure_time)as wat where zeit=gruppenZeit group by zeit order by zeit),4), gruppenZeit from("
                                + "select sum(wert) as gruppenWert,control_point_name, zeit1 as gruppenZeit from (select sum(value)as wert,control_point_name,date_trunc('"
                                + granularity
                                + "',measure_time)as zeit1 from measures inner join controlpoints on measures.controlpoint_id=controlpoints.controlpoints_id where measure_time >= '"
                                + startTime + "' AND measure_time < '" + endTime + "' AND controlpoints_id in("
                                + groups[i]
                                + ")group by measure_time,control_point_name)as data group by zeit1,control_point_name)as groupedByTime group by gruppenZeit)as result order by gruppenZeit"
                                + ";");

            }
        }
        if (rs != null) {
            try {
                while (rs.next()) {
                    switch (granularity) {

                    case "minute":
                        series.add(new Minute(Integer.parseInt(rs.getString(2).substring(14, 16)),
                                Integer.parseInt(rs.getString(2).substring(11, 13)),
                                Integer.parseInt(rs.getString(2).substring(8, 10)),
                                Integer.parseInt(rs.getString(2).substring(5, 7)),
                                Integer.parseInt(rs.getString(2).substring(0, 4))), rs.getDouble(1));
                        break;
                    case "day":
                        series.add(new Day(Integer.parseInt(rs.getString(2).substring(8, 10)),
                                Integer.parseInt(rs.getString(2).substring(5, 7)),
                                Integer.parseInt(rs.getString(2).substring(0, 4))), rs.getDouble(1));
                        break;

                    case "month":
                        series.add(new Month(Integer.parseInt(rs.getString(2).substring(5, 7)),
                                Integer.parseInt(rs.getString(2).substring(0, 4))), rs.getDouble(1));
                        break;

                    case "year":
                        series.add(new Year(Integer.parseInt(rs.getString(2).substring(0, 4))),
                                rs.getDouble(1));
                        break;

                    //default: day
                    default:
                        series.add(new Day(Integer.parseInt(rs.getString(2).substring(8, 10)),
                                Integer.parseInt(rs.getString(2).substring(5, 7)),
                                Integer.parseInt(rs.getString(2).substring(0, 4))), rs.getDouble(1));

                    }
                }
                rs.close();

            } catch (NumberFormatException e) {

            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        //Add the series to the collection
        collection.addSeries(series);
    }
    return collection;
}

From source file:org.yccheok.jstock.gui.SellPortfolioTimeChartJDialog.java

private JFreeChart createChart(String name) {
    final JStockOptions jStockOptions = MainFrame.getInstance().getJStockOptions();
    final boolean isFeeCalculationEnabled = jStockOptions.isFeeCalculationEnabled();
    final boolean isPenceToPoundConversionEnabled = jStockOptions.isPenceToPoundConversionEnabled();

    final Portfolio portfolio = (Portfolio) portfolioTreeTableModel.getRoot();
    final int count = portfolio.getChildCount();

    final List<DataEx> dataExs = new ArrayList<DataEx>();

    for (int i = 0; i < count; i++) {
        TransactionSummary transactionSummary = (TransactionSummary) portfolio.getChildAt(i);

        if (transactionSummary.getChildCount() <= 0) {
            continue;
        }/* www .  j  a va2  s  .  c  o m*/

        Transaction transaction = (Transaction) transactionSummary.getChildAt(0);
        final Date date = transaction.getDate().getTime();

        if (name.equals(cNames[2]) || name.equals(cNames[3])) {
            this.isCumulativeChart = true;
        } else {
            this.isCumulativeChart = false;
        }

        /* Should use reflection technology. */
        if (name.equals(cNames[0]) || name.equals(cNames[2])) {
            if (isPenceToPoundConversionEnabled == false) {
                if (isFeeCalculationEnabled) {
                    dataExs.add(DataEx.newInstance(date,
                            portfolioTreeTableModel.getNetGainLossValue(transactionSummary)));
                } else {
                    dataExs.add(DataEx.newInstance(date,
                            portfolioTreeTableModel.getGainLossValue(transactionSummary)));
                }
            } else {
                if (isFeeCalculationEnabled) {
                    dataExs.add(DataEx.newInstance(date,
                            portfolioTreeTableModel.getNetGainLossValue(transactionSummary) / 100.0));
                } else {
                    dataExs.add(DataEx.newInstance(date,
                            portfolioTreeTableModel.getGainLossValue(transactionSummary) / 100.0));
                }
            }
        } else if (name.equals(cNames[1]) || name.equals(cNames[3])) {
            if (isPenceToPoundConversionEnabled == false) {
                if (isFeeCalculationEnabled) {
                    dataExs.add(DataEx.newInstance(date,
                            -portfolioTreeTableModel.getNetGainLossValue(transactionSummary)));
                } else {
                    dataExs.add(DataEx.newInstance(date,
                            -portfolioTreeTableModel.getGainLossValue(transactionSummary)));
                }
            } else {
                if (isFeeCalculationEnabled) {
                    dataExs.add(DataEx.newInstance(date,
                            -portfolioTreeTableModel.getNetGainLossValue(transactionSummary) / 100.0));
                } else {
                    dataExs.add(DataEx.newInstance(date,
                            -portfolioTreeTableModel.getGainLossValue(transactionSummary) / 100.0));
                }
            }
        }
    }

    Collections.sort(dataExs);
    TimeSeries series = new TimeSeries(name);
    double totalValue = 0;
    for (DataEx dataEx : dataExs) {
        double value = dataEx.value;
        if (!this.isCumulativeChart && series.getValue(new Day(dataEx.date)) != null) {
            value += series.getValue(new Day(dataEx.date)).doubleValue();
        }

        if (this.isCumulativeChart) {
            totalValue += value;
            series.addOrUpdate(new Day(dataEx.date), totalValue);
        } else {
            series.addOrUpdate(new Day(dataEx.date), value);
        }

    }

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);

    JFreeChart chart = ChartFactory.createTimeSeriesChart(name, "date", null, dataset, false, true, false);

    ValueMarker marker = new ValueMarker(0);
    marker.setPaint(Color.black);

    XYPlot plot = (XYPlot) chart.getXYPlot();
    plot.addRangeMarker(marker);

    return chart;

}

From source file:org.matsim.contrib.drt.analysis.DynModeTripsAnalyser.java

public static void analyseWaitTimes(String fileName, List<DynModeTrip> trips, int binsize_s) {
    Collections.sort(trips);/*from w  w w . j a v  a  2 s  .  c  o  m*/
    if (trips.size() == 0)
        return;
    int startTime = ((int) (trips.get(0).getDepartureTime() / binsize_s)) * binsize_s;
    int endTime = ((int) (trips.get(trips.size() - 1).getDepartureTime() / binsize_s) + binsize_s) * binsize_s;
    Map<Double, List<DynModeTrip>> splitTrips = splitTripsIntoBins(trips, startTime, endTime, binsize_s);

    DecimalFormat format = new DecimalFormat();
    format.setDecimalFormatSymbols(new DecimalFormatSymbols(Locale.US));
    format.setMinimumIntegerDigits(1);
    format.setMaximumFractionDigits(2);
    format.setGroupingUsed(false);

    SimpleDateFormat sdf2 = new SimpleDateFormat("HH:mm:ss");

    BufferedWriter bw = IOUtils.getBufferedWriter(fileName + ".csv");
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    TimeSeriesCollection datasetrequ = new TimeSeriesCollection();
    TimeSeries averageWaitC = new TimeSeries("average");
    TimeSeries medianWait = new TimeSeries("median");
    TimeSeries p_5Wait = new TimeSeries("5th percentile");
    TimeSeries p_95Wait = new TimeSeries("95th percentile");
    TimeSeries requests = new TimeSeries("Ride requests");

    try {
        bw.write("timebin;trips;average_wait;min;p_5;p_25;median;p_75;p_95;max");
        for (Entry<Double, List<DynModeTrip>> e : splitTrips.entrySet()) {
            long rides = 0;
            double averageWait = 0;
            double min = 0;
            double p_5 = 0;
            double p_25 = 0;
            double median = 0;
            double p_75 = 0;
            double p_95 = 0;
            double max = 0;
            if (!e.getValue().isEmpty()) {
                DescriptiveStatistics stats = new DescriptiveStatistics();
                for (DynModeTrip t : e.getValue()) {
                    stats.addValue(t.getWaitTime());
                }
                rides = stats.getN();
                averageWait = stats.getMean();
                min = stats.getMin();
                p_5 = stats.getPercentile(5);
                p_25 = stats.getPercentile(25);
                median = stats.getPercentile(50);
                p_75 = stats.getPercentile(75);
                p_95 = stats.getPercentile(95);
                max = stats.getMax();

            }
            Minute h = new Minute(sdf2.parse(Time.writeTime(e.getKey())));

            medianWait.addOrUpdate(h, Double.valueOf(median));
            averageWaitC.addOrUpdate(h, Double.valueOf(averageWait));
            p_5Wait.addOrUpdate(h, Double.valueOf(p_5));
            p_95Wait.addOrUpdate(h, Double.valueOf(p_95));
            requests.addOrUpdate(h, rides * 3600. / binsize_s);// normalised [req/h]
            bw.newLine();
            bw.write(Time.writeTime(e.getKey()) + ";" + rides + ";" + format.format(averageWait) + ";"
                    + format.format(min) + ";" + format.format(p_5) + ";" + format.format(p_25) + ";"
                    + format.format(median) + ";" + format.format(p_75) + ";" + format.format(p_95) + ";"
                    + format.format(max));

        }
        bw.flush();
        bw.close();
        dataset.addSeries(averageWaitC);
        dataset.addSeries(medianWait);
        dataset.addSeries(p_5Wait);
        dataset.addSeries(p_95Wait);
        datasetrequ.addSeries(requests);
        JFreeChart chart = chartProfile(splitTrips.size(), dataset, "Waiting times", "Wait time (s)");
        JFreeChart chart2 = chartProfile(splitTrips.size(), datasetrequ, "Ride requests per hour",
                "Requests per hour (req/h)");
        ChartSaveUtils.saveAsPNG(chart, fileName, 1500, 1000);
        ChartSaveUtils.saveAsPNG(chart2, fileName + "_requests", 1500, 1000);

    } catch (IOException | ParseException e) {

        e.printStackTrace();
    }

}

From source file:org.hxzon.demo.jfreechart.DatasetVisibleDemo3.java

private static XYDataset createDataset2() {
    boolean notify = false;

    TimeSeries s1 = new TimeSeries(series1Name);
    s1.add(new Month(1, 2001), 181.8, notify);
    s1.add(new Month(2, 2001), 167.3, notify);
    s1.add(new Month(4, 2001), 153.8, notify);
    s1.add(new Month(5, 2001), 167.6, notify);
    s1.add(new Month(6, 2001), 158.8, notify);
    s1.add(new Month(9, 2001), 148.3, notify);
    s1.add(new Month(10, 2001), 153.9, notify);
    s1.add(new Month(11, 2001), 142.7, notify);
    s1.add(new Month(12, 2001), 123.2, notify);
    s1.add(new Month(1, 2002), 131.8, notify);
    s1.add(new Month(2, 2002), 139.6, notify);
    s1.add(new Month(3, 2002), 142.9, notify);
    s1.add(new Month(4, 2002), 138.7, notify);
    s1.add(new Month(6, 2002), 137.3, notify);
    s1.add(new Month(7, 2002), 143.9, notify);
    s1.add(new Month(8, 2002), 139.8, notify);
    s1.add(new Month(9, 2002), 137.0, notify);
    s1.add(new Month(10, 2002), 132.8, notify);

    TimeSeries s2 = new TimeSeries(series2Name);
    s2.add(new Month(2, 2001), 129.6, notify);
    s2.add(new Month(3, 2001), 123.2, notify);
    s2.add(new Month(4, 2001), 117.2, notify);
    s2.add(new Month(5, 2001), 124.1, notify);
    s2.add(new Month(6, 2001), 122.6, notify);
    s2.add(new Month(7, 2001), 119.2, notify);
    s2.add(new Month(8, 2001), 116.5, notify);
    s2.add(new Month(9, 2001), 112.7, notify);
    s2.add(new Month(10, 2001), 101.5, notify);
    s2.add(new Month(11, 2001), 106.1, notify);
    s2.add(new Month(12, 2001), 110.3, notify);
    s2.add(new Month(1, 2002), 111.7, notify);
    s2.add(new Month(2, 2002), 111.0, notify);
    s2.add(new Month(3, 2002), 109.6, notify);
    s2.add(new Month(4, 2002), 113.2, notify);
    s2.add(new Month(5, 2002), 111.6, notify);
    s2.add(new Month(6, 2002), 108.8, notify);
    s2.add(new Month(7, 2002), 101.6, notify);

    TimeSeries s3 = new TimeSeries(series3Name);
    s3.add(new Month(2, 2001), 2129.6, notify);
    s3.add(new Month(3, 2001), 2123.2, notify);
    s3.add(new Month(4, 2001), 2117.2, notify);
    s3.add(new Month(5, 2001), 2124.1, notify);
    s3.add(new Month(6, 2001), 2122.6, notify);
    s3.add(new Month(7, 2001), 2119.2, notify);
    s3.add(new Month(8, 2001), 2116.5, notify);
    s3.add(new Month(9, 2001), 2112.7, notify);
    s3.add(new Month(10, 2001), 2101.5, notify);
    s3.add(new Month(11, 2001), 2106.1, notify);
    s3.add(new Month(12, 2001), 2110.3, notify);
    s3.add(new Month(1, 2002), 2111.7, notify);
    s3.add(new Month(2, 2002), 2111.0, notify);
    s3.add(new Month(3, 2002), 2109.6, notify);
    s3.add(new Month(4, 2002), 2113.2, notify);
    s3.add(new Month(5, 2002), 2111.6, notify);
    s3.add(new Month(6, 2002), 2108.8, notify);
    s3.add(new Month(7, 2002), 2101.6, notify);

    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s3);//from   w w  w. j a  va  2s  .c om
    dataset.addSeries(s2);
    dataset.addSeries(s1);

    return dataset;
}

From source file:DashboardInterface.LaunchGraph.java

private XYDataset createDataset4(int offset) {
    long dateMili = 0L;

    TimeSeries s1 = new TimeSeries("");
    s1.add(new Second(new Date(dateMili)), 110);
    s1.add(new Second(new Date(dateMili + offset)), 110);
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(s1);//  w  w w.  j a v a  2  s .c o  m

    return dataset;

}

From source file:org.jfree.data.time.TimeSeriesCollectionTest.java

/**
 * Some tests for the indexOf() method.//from   w  w  w.  j a v a  2 s. c o  m
 */
@Test
public void testIndexOf() {
    TimeSeries s1 = new TimeSeries("S1");
    TimeSeries s2 = new TimeSeries("S2");
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    assertEquals(-1, dataset.indexOf(s1));
    assertEquals(-1, dataset.indexOf(s2));

    dataset.addSeries(s1);
    assertEquals(0, dataset.indexOf(s1));
    assertEquals(-1, dataset.indexOf(s2));

    dataset.addSeries(s2);
    assertEquals(0, dataset.indexOf(s1));
    assertEquals(1, dataset.indexOf(s2));

    dataset.removeSeries(s1);
    assertEquals(-1, dataset.indexOf(s1));
    assertEquals(0, dataset.indexOf(s2));

    TimeSeries s2b = new TimeSeries("S2");
    assertEquals(0, dataset.indexOf(s2b));
}