Example usage for org.jfree.data.time RegularTimePeriod createInstance

List of usage examples for org.jfree.data.time RegularTimePeriod createInstance

Introduction

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

Prototype

public static RegularTimePeriod createInstance(Class c, Date millisecond, TimeZone zone) 

Source Link

Document

Creates a time period that includes the specified millisecond, assuming the given time zone.

Usage

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