List of usage examples for org.jfree.data.time TimeSeriesCollection TimeSeriesCollection
public TimeSeriesCollection()
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)); }