List of usage examples for org.jfree.data.time RegularTimePeriod createInstance
public static RegularTimePeriod createInstance(Class c, Date millisecond, TimeZone zone)
From source file:gsn.charts.GsnChartJfreechart.java
public JFreeChart createChart(Collection<Data> datas) { TimeSeries t1 = new TimeSeries("S1"); Iterator<Data> iter = datas.iterator(); Data data;//from w w w. j a va 2s . c o m while (iter.hasNext()) { data = iter.next(); t1.addOrUpdate(RegularTimePeriod.createInstance(Millisecond.class, new Date((Long) data.getP2()), TimeZone.getDefault()), data.getValue()); } XYDataset dataset = new TimeSeriesCollection(t1); JFreeChart chart = ChartFactory.createTimeSeriesChart(null, null, null, dataset, false, false, false); chart.setAntiAlias(true); chart.setTextAntiAlias(true); chart.setBackgroundPaint(Color.WHITE); // XYPlot plot = (XYPlot) chart.getPlot(); plot.setNoDataMessage("No Data to Display"); plot.setDomainGridlinesVisible(true); plot.setBackgroundPaint(Color.WHITE); plot.setInsets(new RectangleInsets(5, 14, 0, 5)); // DateAxis axis = (DateAxis) plot.getDomainAxis(); axis.setDateFormatOverride(ssdf); axis.setTickLabelFont(TICK_FONT); ValueAxis rangeAxis = plot.getRangeAxis(); rangeAxis.setTickLabelFont(TICK_FONT); // return chart; }
From source file:com.jaxzin.iraf.demo.GSDemo.java
private static XYDataset createData() { TimeSeriesCollection tsc = new TimeSeriesCollection(); GrowthSimulator sim = new StandardGrowthSimulator(); sim.setDomain(new GSDomainImpl()); // Locate the simulation start point sim.getDomain().setInitialInvestment(Quantity.<Money>valueOf("45000 USD")); // Setup the data about me sim.getDomain().setInitialAge(28);// www. j a v a2s . c o m sim.getDomain().setRetirementAge(60); sim.getDomain().setLifespan(90); // Setup the data about my job sim.getDomain().setInitialSalary(Quantity.<Money>valueOf("95000 USD")); sim.getDomain().setBonus(Quantity.<Dimensionless>valueOf("14 %")); sim.getDomain().setRaise(Quantity.<Dimensionless>valueOf("5.5 %")); sim.getDomain().setPaychecksPerYear(1); // Setup the data about contributions to IRA sim.getDomain().setContribution(Quantity.<Dimensionless>valueOf("4 %")); sim.getDomain().setEmployerMatch(Quantity.<Dimensionless>valueOf("75 %")); // Setup data about the market sim.getDomain().setRor1(Quantity.<Dimensionless>valueOf("10 %")); sim.getDomain().setRor2(Quantity.<Dimensionless>valueOf("5 %")); sim.getDomain().setRiskFreeRate(Quantity.<Dimensionless>valueOf("3 %")); sim.getDomain().setAdjustForInflation(false); // Setup data about retirement sim.getDomain().setRetirementFactor(Quantity.<Dimensionless>valueOf("25 %")); java.util.List<Money> moneys = null; try { moneys = sim.simulate(); } catch (SimulationException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } TimeSeries ts = new TimeSeries("", Year.class); for (Money money : moneys) { if (ts.getItemCount() == 0) { ts.add(RegularTimePeriod.createInstance(Year.class, DateUtilities.createDate(2006, 1, 1), TimeZone.getDefault()), money.doubleValue()); } else { ts.add(ts.getNextTimePeriod(), money.doubleValue()); } } tsc.addSeries(ts); return tsc; }
From source file:org.tolven.analysis.bean.PercentTimeSeriesBean.java
@Override public JFreeChart getChart(MenuStructure snapshotListMS, MenuPath snapshotPH, Long chartRange, Class<?> intervalUnitClass, String chartDataTitle, String chartTargetTitle, AccountUser accountUser, Date now) {/*from w ww. j av a2s. c om*/ MenuQueryControl ctrl = new MenuQueryControl(); ctrl.setMenuStructure(snapshotListMS); ctrl.setAccountUser(accountUser); ctrl.setNow(now); ctrl.setOriginalTargetPath(snapshotPH); ctrl.setRequestedPath(snapshotPH); ctrl.setSortOrder("Date"); ctrl.setSortDirection("DESC"); ctrl.setLimit(1); List<MenuData> singleItemList = menuBean.findMenuData(ctrl); Date lastSnapshotDate = null; if (singleItemList.isEmpty()) { lastSnapshotDate = now; } else { MenuData snapshotListItem = singleItemList.get(0); MenuData snapshot = snapshotListItem.getReference(); lastSnapshotDate = new Date(snapshot.getDate01().getTime()); } RegularTimePeriod endTimePeriod = RegularTimePeriod.createInstance(intervalUnitClass, lastSnapshotDate, TimeZone.getDefault()); long milliseconds = Math.max(1, chartRange - 1) * (endTimePeriod.getEnd().getTime() - endTimePeriod.getStart().getTime()); Date fDate = new Date(endTimePeriod.getEnd().getTime() - milliseconds); RegularTimePeriod startTimePeriod = RegularTimePeriod.createInstance(intervalUnitClass, fDate, TimeZone.getDefault()); Date fromDate = startTimePeriod.getStart(); Date toDate = endTimePeriod.getEnd(); ctrl.setSortDirection("ASC"); ctrl.setLimit(0); ctrl.setFromDate(fromDate); ctrl.setToDate(toDate); List<MenuData> snapshotListItems = menuBean.findMenuData(ctrl); List<MenuData> snapshots = new ArrayList<MenuData>(); for (MenuData snapshotListItem : snapshotListItems) { snapshots.add(snapshotListItem.getReference()); } return getChart(chartDataTitle, chartTargetTitle, snapshots, fromDate, toDate, intervalUnitClass); }
From source file:jamel.gui.charts.TwoSeriesScatterChart.java
/** * Sets the time range.//from w w w.j av a 2s . c om * * @param lower the lower date limit. * @param upper the upper date limit. */ public void setTimeRange(Date lower, Date upper) { XYSeriesCollection dataset = (XYSeriesCollection) ((XYPlot) this.getPlot()).getDataset(); // nouvelle collection de sries if (((this.begin == null) | (this.end == null)) || ((!this.begin.equals(lower)) | (!this.end.equals(upper)))) { this.begin = lower; this.end = upper; int minIndex = 0; // dfinit l'index des donnes correspondant la date de dbut try { minIndex = this.xTimeSeries.getIndex(RegularTimePeriod .createInstance(this.xTimeSeries.getTimePeriodClass(), lower, TimeZone.getDefault())); } catch (IllegalArgumentException i) { } if (minIndex < 0) minIndex = 0; // rectifie ventuellement le rsultat int maxIndex = this.xTimeSeries.getItemCount() - 1; try { maxIndex = this.xTimeSeries.getIndex(RegularTimePeriod .createInstance(this.xTimeSeries.getTimePeriodClass(), upper, TimeZone.getDefault())); } catch (IllegalArgumentException i) { } // dfinit l'index des donnes correspondant la date de fin if (maxIndex < 0) maxIndex = this.xTimeSeries.getItemCount() - 1; // rectifie ventuellement le rsultat XYSeries newSeries = new XYSeries("XY Data", false); // cre une nouvelle srie for (int index = minIndex; index <= maxIndex - 1; index++) { RegularTimePeriod currentPeriod = this.xTimeSeries.getTimePeriod(index); // rcupre la priode courante if (this.yTimeSeries.getValue(currentPeriod) != null) newSeries.add(this.xTimeSeries.getValue(currentPeriod), this.yTimeSeries.getValue(currentPeriod)); } try { dataset.removeSeries(0); } // efface la srie actuelle catch (IllegalArgumentException i) { } // au cas o il n'y aurait pas de sries enlever (la premire fois) dataset.addSeries(newSeries); } }
From source file:com.bdb.weather.display.freeplot.FreePlotSeries.java
/** * Load the data for this series.// w w w .j a va 2s. co m * * @param data A generic list on which the methods passed into the constructor will be called */ public void loadData(List<T> data) { series.setNotify(false); series.clear(); data.stream().forEach((obj) -> { TemporalAccessor time = getTimeMethod.apply(obj); RegularTimePeriod period = RegularTimePeriod.createInstance(timePeriod, TimeUtils.localDateTimeToDate(time), TimeZone.getDefault()); Measurement m; m = getDataMethod.apply(obj); if (m != null) { double value = m.get(); series.add(period, value); } }); series.fireSeriesChanged(); series.setNotify(true); }
From source file:org.jstockchart.dataset.TimeseriesDataset.java
/** * Adds a <code>TimeseriesItem</code> instance to the data set. * /*from w w w.java 2 s.c om*/ * @param item * the <code>TimeseriesItem</code> instance. */ public void addDataItem(TimeseriesItem item) { RegularTimePeriod time = RegularTimePeriod.createInstance(timePeriodClass, item.getTime(), timeZone); priceTimeSeries.addItem(new TimeSeriesDataItem(time, item.getPrice())); volumeTimeSeries.addOrUpdate(new TimeSeriesDataItem(time, item.getVolume())); if (average != null) { average.setPriceVolume(item.getPrice(), item.getVolume()); averageTimeSeries.addItem(new TimeSeriesDataItem(time, average.value)); } if (maxPrice == null || maxPrice.doubleValue() < item.getPrice()) { maxPrice = new Double(item.getPrice()); } if (minPrice == null || minPrice.doubleValue() > item.getPrice()) { minPrice = new Double(item.getPrice()); } if (maxVolume == null || maxVolume.doubleValue() < item.getVolume()) { maxVolume = new Double(item.getVolume()); } if (minVolume == null || minVolume.doubleValue() > item.getVolume()) { minVolume = new Double(item.getVolume()); } }
From source file:org.tolven.analysis.bean.PercentTimeSeriesBean.java
private JFreeChart getChart(String dataSeriesTitle, String targetSeriesTitle, List<MenuData> snapshots, Date fromDate, Date toDate, Class<?> intervalUnitClass) { TimeSeries dataTimeSeries = new TimeSeries(dataSeriesTitle); TimeSeries targetTimeSeries = null;/*ww w .j av a2 s .c o m*/ if (targetSeriesTitle != null) { targetTimeSeries = new TimeSeries(targetSeriesTitle); } for (MenuData snapshot : snapshots) { Date snapshotDate = snapshot.getDate01(); long nSnapshotresultsNumerator = snapshot.getLongField("normCount"); long nSnapshotresultsDenominator = snapshot.getLongField("allCount"); Double value = null; if (nSnapshotresultsDenominator == 0) { value = 0d; } else { value = 1d * nSnapshotresultsNumerator / nSnapshotresultsDenominator; } RegularTimePeriod regTimePeriod = RegularTimePeriod.createInstance(intervalUnitClass, snapshotDate, TimeZone.getDefault()); dataTimeSeries.addOrUpdate(regTimePeriod, value); if (targetTimeSeries != null) { Double targetPercent = snapshot.getDoubleField("targetPercent") / 100; targetTimeSeries.addOrUpdate(regTimePeriod, targetPercent); } } TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection(); timeSeriesCollection.addSeries(dataTimeSeries); if (targetTimeSeries != null) { timeSeriesCollection.addSeries(targetTimeSeries); } XYDataset xyDataset = (XYDataset) timeSeriesCollection; JFreeChart chart = ChartFactory.createTimeSeriesChart(null, // title null, // x-axis label null, // y-axis label xyDataset, // data true, // create legend? false, // generate tooltips? false // generate URLs? ); chart.setBackgroundPaint(Color.white); XYPlot plot = (XYPlot) chart.getPlot(); plot.setBackgroundPaint(Color.white); plot.setRangeGridlinesVisible(true); plot.setRangeGridlinePaint(Color.BLACK); plot.setDomainGridlinesVisible(false); XYItemRenderer r = plot.getRenderer(); XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) r; renderer.setBaseShapesVisible(true); renderer.setBaseShapesFilled(true); renderer.setSeriesShape(0, new Ellipse2D.Double(-3, -3, 6, 6)); renderer.setSeriesPaint(0, Color.BLUE); renderer.setSeriesShape(1, new Rectangle2D.Double(-3, -3, 6, 6)); renderer.setSeriesPaint(1, Color.RED); NumberAxis vaxis = (NumberAxis) plot.getRangeAxis(); vaxis.setAutoRange(true); vaxis.setAxisLineVisible(true); vaxis.setNumberFormatOverride(NumberFormat.getPercentInstance()); vaxis.setTickMarksVisible(true); DateAxis daxis = (DateAxis) plot.getDomainAxis(); daxis.setRange(fromDate, toDate); if (intervalUnitClass == Month.class) { DateFormatSymbols dateFormatSymbols = new DateFormatSymbols(); dateFormatSymbols .setShortMonths(new String[] { "J", "F", "M", "A", "M", "J", "J", "A", "S", "O", "N", "D" }); daxis.setDateFormatOverride(new SimpleDateFormat("MMM", dateFormatSymbols)); } return chart; }
From source file:com.bdb.weather.display.summary.RainSummary.java
/** * Load the data into the plot.//from w ww. j av a 2 s. co m * * @param list The summary data */ public void loadData(List<SummaryRecord> list) { dataTable.setItems(FXCollections.observableList(list)); TimeSeriesCollection ds = new TimeSeriesCollection(); TimeSeries etSeries = new TimeSeries(ET_ROW_KEY); TimeSeries rainSeries = new TimeSeries(RAIN_ROW_KEY); Depth totalRain = new Depth(0.0); Depth totalET = new Depth(0.0); // // Load each record // for (SummaryRecord rec : list) { Depth rain = rec.getTotalRainfall(); RegularTimePeriod tp = RegularTimePeriod.createInstance(interval.getFreeChartClass(), TimeUtils.localDateTimeToDate(rec.getDate()), TimeZone.getDefault()); if (rain != null) { rainSeries.add(tp, rain.get()); totalRain = totalRain.add(rain); } Depth et = rec.getTotalET(); if (et != null) { etSeries.add(tp, et.get()); totalET = totalET.add(et); } } ds.addSeries(etSeries); ds.addSeries(rainSeries); rainPlot.setDataset(ds); }
From source file:edu.mit.fss.examples.member.gui.PowerSubsystemPanel.java
@Override public void timeAdvanced(final SimulationTimeEvent event) { // make a copy of state updates to prevent late-running threads from // posting out-of-date information final double storedEnergy = subsystem.getPowerStored(); final double powerGeneration = subsystem.getPowerGeneration(); final double powerConsumption = subsystem.getTotalPowerConsumption(); // update in event dispatch thread for thread safety try {//ww w . ja v a2 s . com SwingUtilities.invokeAndWait(new Runnable() { public void run() { storageSeries.addOrUpdate(RegularTimePeriod.createInstance(Minute.class, new Date(event.getTime()), TimeZone.getTimeZone("UTC")), storedEnergy); generationSeries.addOrUpdate(RegularTimePeriod.createInstance(Minute.class, new Date(event.getTime()), TimeZone.getTimeZone("UTC")), powerGeneration); consumptionSeries.addOrUpdate(RegularTimePeriod.createInstance(Minute.class, new Date(event.getTime()), TimeZone.getTimeZone("UTC")), powerConsumption); } }); } catch (InvocationTargetException | InterruptedException e) { logger.error(e); } }
From source file:com.bdb.weather.display.summary.WindSummary.java
/** * Load the data into the plot.// ww w .j a va 2 s . c o m * * @param records The summary records */ public void loadData(List<SummaryRecord> records) { dataTable.setItems(FXCollections.observableList(records)); TimeSeriesCollection sustainedDataset = new TimeSeriesCollection(); TimeSeries avgSpeedSeries = new TimeSeries("Average Sustained"); TimeSeries maxSpeedSeries = new TimeSeries("Maximum Sustained"); TimeSeriesCollection gustDataset = new TimeSeriesCollection(); TimeSeries windGustSeries = new TimeSeries("Maximum Gust"); for (int i = 0; i < records.size(); i++) { RegularTimePeriod p = RegularTimePeriod.createInstance(interval.getFreeChartClass(), TimeUtils.localDateTimeToDate(records.get(i).getDate().atStartOfDay()), TimeZone.getDefault()); maxSpeedSeries.add(p, records.get(i).getMaxWindSpeed().get()); avgSpeedSeries.add(p, records.get(i).getAvgWindSpeed().get()); Speed gust = records.get(i).getMaxWindGust(); if (gust != null) { windGustSeries.add(p, gust.get()); } } sustainedDataset.addSeries(avgSpeedSeries); sustainedDataset.addSeries(maxSpeedSeries); gustDataset.addSeries(windGustSeries); plot.setDataset(SUSTAINED_WIND_SERIES, sustainedDataset); plot.setDataset(GUST_SERIES, gustDataset); }