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:ca.myewb.frame.servlet.GraphServlet.java

private JFreeChart getDaily3Stats(Session s) {
    JFreeChart chart;/*  w ww  .  j  a  v a 2  s . com*/
    List<DailyStatsModel> stats = (new SafeHibList<DailyStatsModel>(
            s.createQuery("select ds from DailyStatsModel as ds where day<? and day>=? order by day desc")
                    .setDate(0, new Date()).setDate(1, GraphServlet.getStartDate()))).list();
    TimeSeriesCollection theData = new TimeSeriesCollection();

    TimeSeries regUpgrades = new TimeSeries("Regular Upgrades", Day.class);
    theData.addSeries(regUpgrades);

    TimeSeries renewals = new TimeSeries("Regular Renewals", Day.class);
    theData.addSeries(renewals);

    TimeSeries regDowngrades = new TimeSeries("Regular Downgrades", Day.class);
    theData.addSeries(regDowngrades);

    for (DailyStatsModel ds : stats) {
        Day theDay = new Day(ds.getDay());
        regUpgrades.add(theDay, ds.getRegupgrades());
        renewals.add(theDay, ds.getRenewals());
        regDowngrades.add(theDay, ds.getRegdowngrades());
    }

    chart = ChartFactory.createTimeSeriesChart("Regular membership changes (14-day moving avg)", "Day",
            "Occurrences", MovingAverage.createMovingAverage(theData, "", 14, 0), true, true, true);

    XYPlot plot = (XYPlot) chart.getPlot();
    plot.getRangeAxis().setUpperBound(10);

    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
    renderer.setSeriesStroke(0, new BasicStroke(2.0f));
    renderer.setSeriesStroke(1, new BasicStroke(2.0f));
    renderer.setSeriesStroke(2, new BasicStroke(2.0f));
    return chart;
}

From source file:org.cerberus.crud.service.impl.TestCaseExecutionwwwDetService.java

@Override
public BufferedImage getHistoricOfParameter(TestCase testcase, String parameter) {
    List<TestCaseExecutionwwwSumHistoric> historic = testCaseExecutionWWWDetDAO
            .getHistoricForParameter(testcase, parameter);
    BufferedImage result = null;// w w  w .ja  v a2  s  .c  o  m
    DefaultCategoryDataset defaultcategorydataset = new DefaultCategoryDataset();
    TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
    /*Create timeseries with the data*/
    String timeseriesname = parameter;
    TimeSeries timeseries = new TimeSeries(timeseriesname, Minute.class);
    for (TestCaseExecutionwwwSumHistoric ep : historic) {
        defaultcategorydataset.addValue(Float.valueOf(ep.getParameter()), parameter, ep.getStart());
        if (!ep.getStart().equals("2011-01-01 00:00")) {
            String tims = ep.getStart();
            int year = Integer.valueOf(tims.substring(0, 4));
            int month = Integer.valueOf(tims.substring(5, 7));
            int day = Integer.valueOf(tims.substring(8, 10));
            int hour = Integer.valueOf(tims.substring(11, 13));
            int min = Integer.valueOf(tims.substring(14, 16));
            float value = Float.valueOf(ep.getParameter());
            timeseries.addOrUpdate(new Minute(min, hour, day, month, year), value);
        }
    }
    timeseriescollection.addSeries(timeseries);
    result = this.bi(timeseriescollection, "test", parameter, 1);
    return result;
}

From source file:ca.myewb.frame.servlet.GraphServlet.java

private JFreeChart getListMemberships(Session s, int groupId, UserModel currentUser) {
    final int NUM_MONTHS = 6;
    Logger log = Logger.getLogger(this.getClass());
    JFreeChart chart;// ww  w  .  j av a2  s. c om
    Date startDate;
    TreeMap<Day, Integer> memberChange = new TreeMap<Day, Integer>();
    GroupModel g = (GroupModel) s.get(GroupModel.class, groupId);

    if (g == null) {
        log.warn("Someone requested chapter stats with a bad group id");
    } else if (!Permissions.canAdministerGroupMembership(currentUser, g)) {
        log.warn(currentUser.getUsername() + "tried to access list memberships graph!");
    }

    Calendar cal = GregorianCalendar.getInstance();
    Date now = cal.getTime();
    cal.set(Calendar.HOUR, 0);
    cal.set(Calendar.MINUTE, 0);
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 1);
    cal.add(Calendar.MONTH, -NUM_MONTHS);
    startDate = cal.getTime();

    //Set Initial Number of Members      
    int initMembers = g.getNumMembers() + g.getNumRecipients();

    //Pull a list of all of the membership start dates
    List starts = s.createQuery("SELECT rm.start, count(*) " + "FROM RoleModel as rm "
            + "WHERE rm.group = :group " + "AND (rm.level = 'r' OR rm.level = 'm') "
            + "AND rm.start > :startDate " + "GROUP BY rm.start ").setEntity("group", g)
            .setDate("startDate", startDate).list();

    for (Object o : starts) {
        Day date = new Day((Date) (((Object[]) o)[0]));
        int change = ((Long) (((Object[]) o)[1])).intValue();
        memberChange.put(date, change);
        initMembers -= change;
    }

    //Pull a list of all of the membership end dates
    List ends = s.createQuery("SELECT rm.end, count(*) " + "FROM RoleModel as rm " + "WHERE rm.group = :group "
            + "AND (rm.level = 'r' OR rm.level = 'm') " + "AND rm.end > :startDate " + "GROUP BY rm.end ")
            .setEntity("group", g).setDate("startDate", startDate).list();

    for (Object o : ends) {
        Day date = new Day((Date) (((Object[]) o)[0]));
        int change = ((Long) (((Object[]) o)[1])).intValue();
        if (memberChange.containsKey(date)) {
            memberChange.put(date, memberChange.get(date) - change);
        } else {
            memberChange.put(date, -change);
        }
        initMembers += change;
    }

    TimeSeriesCollection theData = new TimeSeriesCollection();

    TimeSeries signups = new TimeSeries("List Membership", Day.class);
    theData.addSeries(signups);
    while (startDate.before(now)) {
        Day d = new Day(startDate);
        if (memberChange.containsKey(d)) {
            initMembers += memberChange.get(d);
        }
        signups.add(d, initMembers);
        cal.add(Calendar.DATE, 1);
        startDate = cal.getTime();
    }

    chart = ChartFactory.createTimeSeriesChart("List Members", "Day", "Number of Members", theData, true, true,
            true);

    XYPlot plot = (XYPlot) chart.getPlot();

    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer();
    renderer.setSeriesStroke(0, new BasicStroke(2.0f));
    return chart;
}

From source file:ca.myewb.frame.servlet.GraphServlet.java

private JFreeChart getDailyIntegratedStats(Session s) throws CloneNotSupportedException {
    JFreeChart chart;//www . j  a v  a 2 s  .  c om
    List<DailyStatsModel> stats = (new SafeHibList<DailyStatsModel>(
            s.createQuery("select ds from DailyStatsModel as ds where day<? and day>=? order by day desc")
                    .setDate(0, new Date()).setDate(1, GraphServlet.getStartDate()))).list();
    TimeSeriesCollection theData = new TimeSeriesCollection();
    TimeSeriesCollection theData2 = new TimeSeriesCollection();

    TimeSeries users = new TimeSeries("Total Users", Day.class);
    theData.addSeries(users);

    TimeSeries regulars = new TimeSeries("Regular Members", Day.class);
    theData2.addSeries(regulars);

    int numUsers = Helpers.getGroup("Org").getNumMembers();
    int numReg = Helpers.getGroup("Regular").getNumMembers();

    for (DailyStatsModel ds : stats) {
        Day theDay = new Day(ds.getDay());
        users.add(theDay, numUsers);
        regulars.add(theDay, numReg);
        numUsers -= (ds.getMailinglistsignups() + ds.getSignups() - ds.getDeletions());
        numReg -= (ds.getRegupgrades() - ds.getRegdowngrades());
    }

    chart = ChartFactory.createTimeSeriesChart("Membership", "Day", "Users", theData, true, true, true);

    XYPlot plot = (XYPlot) chart.getPlot();

    NumberAxis axis2 = new NumberAxis("Regular Members");
    plot.setRangeAxis(1, axis2);
    plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
    plot.setDataset(1, MovingAverage.createMovingAverage(theData2, "", 14, 0));
    plot.mapDatasetToRangeAxis(1, 1);

    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(0);
    renderer.setSeriesStroke(0, new BasicStroke(2.0f));
    renderer = (XYLineAndShapeRenderer) renderer.clone();
    renderer.setSeriesStroke(0, new BasicStroke(2.0f));
    plot.setRenderer(1, renderer);
    return chart;
}

From source file:org.lmn.fc.frameworks.starbase.plugins.observatory.ui.tabs.charts.GOESChartUIComponent.java

/***********************************************************************************************
 * Set the XYDatasets for the Data and Ratio to be shown on the GOESChartUIComponent.
 * These data are produced by the DAO, and contain two channels plus ratio, i.e. Count = 3.
 *
 * @param dataset/* ww  w. j  ava 2 s  .  c  o  m*/
 */

public void setDatasetsAndMetadata(final XYDataset dataset) {
    if ((dataset != null) && (dataset instanceof TimeSeriesCollection)
            && (dataset.getSeriesCount() == DAO_CHANNEL_COUNT)) {
        final TimeSeriesCollection seriesData;

        // Get the DAO's Metadata for use by this Chart
        if ((getHostInstrument() != null) && (getHostInstrument().getDAO() != null)) {
            // The Metadata came from the Instrument DAO, so don't re-apply
            setMetadata(MetadataHelper.collectMetadataForChartFromDAO(getHostInstrument().getDAO()),
                    getHostInstrument().getDAO(), false, LOADER_PROPERTIES.isMetadataDebug());
        } else {
            setMetadata(null, getHostInstrument().getDAO(), false, LOADER_PROPERTIES.isMetadataDebug());
        }

        // Set the ChannelCount and Temperature flag first, because setPrimaryXYDataset() uses them
        setChannelCount(DAO_CHANNEL_COUNT);
        setTemperatureChannel(false);

        seriesData = new TimeSeriesCollection(((TimeSeriesCollection) dataset).getSeries(0));
        seriesData.addSeries(((TimeSeriesCollection) dataset).getSeries(1));

        // This sets the PrimaryDatasetType and RawDataChannelCount
        setPrimaryXYDataset(getHostInstrument().getDAO(), seriesData);

        // Do the secondary Ratio dataset only in this class
        getSecondaryXYDatasets().clear();
        getSecondaryXYDatasets().add(new TimeSeriesCollection(((TimeSeriesCollection) dataset).getSeries(2)));
    } else {
        // Set the ChannelCount and Temperature flag first, because setPrimaryXYDataset() uses them
        setChannelCount(0);
        setTemperatureChannel(false);
        setPrimaryXYDataset(getHostInstrument().getDAO(), null);
        getSecondaryXYDatasets().clear();

        setMetadata(null, getHostInstrument().getDAO(), false, LOADER_PROPERTIES.isMetadataDebug());
    }
}

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

@Test
public void testSetKey() {
    TimeSeries s1 = new TimeSeries("S");
    s1.setKey("S1");
    assertEquals("S1", s1.getKey());

    TimeSeriesCollection c = new TimeSeriesCollection();
    c.addSeries(s1);
    TimeSeries s2 = new TimeSeries("S2");
    c.addSeries(s2);//from  w  w w . j  a  v a 2  s.com

    // now we should be allowed to change s1's key to anything but "S2"
    s1.setKey("OK");
    assertEquals("OK", s1.getKey());

    try {
        s1.setKey("S2");
        fail("Expect an exception here.");
    } catch (IllegalArgumentException e) {
        // OK
    }

    // after s1 is removed from the collection, we should be able to set
    // the key to anything we want...
    c.removeSeries(s1);
    s1.setKey("S2");

    // check that removing by index also works
    s1.setKey("S1");
    c.addSeries(s1);
    c.removeSeries(1);
    s1.setKey("S2");
}

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);//w  w  w .  j  a  v a2 s.  c om
    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:ca.myewb.frame.servlet.GraphServlet.java

private JFreeChart getLastLogin(Session s) throws CloneNotSupportedException {

    Integer numCurrentLogins = ((Long) s
            .createQuery("select count(*) from UserModel "
                    + "where currentLogin is not null and currentLogin >= :date")
            .setDate("date", getStartDate()).uniqueResult()).intValue();

    List currentStats = s//ww w.j  av  a 2 s. c  o m
            .createSQLQuery("SELECT DATE(currentLogin) as date, count( * ) as lastLogins "
                    + "FROM users where currentLogin is not null  and currentLogin >= :date "
                    + "GROUP BY DATE( currentLogin )")
            .addScalar("date", Hibernate.DATE).addScalar("lastLogins", Hibernate.INTEGER)
            .setDate("date", getStartDate()).list();

    TimeSeriesCollection theData = new TimeSeriesCollection();
    TimeSeriesCollection theData2 = new TimeSeriesCollection();

    TimeSeries current = new TimeSeries("Num Latest Sign-ins", Day.class);
    theData.addSeries(current);
    TimeSeries current2 = new TimeSeries("Signed-in Users Since", Day.class);
    theData2.addSeries(current2);

    for (Object ds : currentStats) {
        Date date = (Date) ((Object[]) ds)[0];
        Day day = new Day(date);
        Integer integer = (Integer) ((Object[]) ds)[1];
        current.add(day, integer);
        numCurrentLogins -= integer.intValue();
        current2.add(day, numCurrentLogins);

    }

    JFreeChart chart = ChartFactory.createTimeSeriesChart("Sign-in Recency", "Day", "Sign-ins", theData, true,
            true, true);

    XYPlot plot = (XYPlot) chart.getPlot();

    NumberAxis axis2 = new NumberAxis("Users");
    plot.setRangeAxis(1, axis2);
    plot.setRangeAxisLocation(1, AxisLocation.BOTTOM_OR_RIGHT);
    plot.setDataset(1, theData2);
    plot.mapDatasetToRangeAxis(1, 1);

    XYLineAndShapeRenderer renderer = (XYLineAndShapeRenderer) plot.getRenderer(0);
    renderer.setSeriesStroke(0, new BasicStroke(2.0f));
    renderer.setSeriesStroke(1, new BasicStroke(2.0f));
    renderer = (XYLineAndShapeRenderer) renderer.clone();
    renderer.setSeriesStroke(0, new BasicStroke(2.0f));
    renderer.setSeriesStroke(1, new BasicStroke(2.0f));
    plot.setRenderer(1, renderer);
    return chart;
}

From source file:org.n52.oxf.render.sos.TimeSeriesChartRenderer4xPhenomenons.java

protected TimeSeriesCollection createDataset(String[] foiIdArray, ObservationSeriesCollection tuples4FOI,
        int observedPropertyIndex) {
    TimeSeriesCollection dataset = new TimeSeriesCollection();

    for (String featureID : foiIdArray) {
        Map<ITimePosition, ObservedValueTuple> tupleMap = tuples4FOI.getAllTuples(featureID);

        if (tupleMap != null) {

            // for each selected <feature,observedPropertyIndex> pair construct a new TimeSeries:
            TimeSeries timeSeries = new TimeSeries(
                    featureID + "___" + this.observedProperties[observedPropertyIndex], Second.class);

            for (ITimePosition timePos : tupleMap.keySet()) {
                ObservedValueTuple tuple = tupleMap.get(timePos);

                Number result = (Number) tuple.getValue(observedPropertyIndex);

                timeSeries.add(new Second(new Float(timePos.getSecond()).intValue(), timePos.getMinute(),
                        timePos.getHour(), timePos.getDay(), timePos.getMonth(),
                        new Long(timePos.getYear()).intValue()), result);
            }//w  w w  .ja  va  2s.  c om
            dataset.addSeries(timeSeries);
        }
    }
    dataset.setDomainIsPointsInTime(true);

    return dataset;
}

From source file:org.n52.oxf.render.sos.TimeSeriesChartRenderer.java

public JFreeChart renderChart(OXFFeatureCollection observationCollection, ParameterContainer paramCon) {
    String[] observedProperties;/*w  w  w  . j ava 2 s . c  o m*/
    // which observedProperty has been used?:
    ParameterShell observedPropertyPS = paramCon.getParameterShellWithServiceSidedName("observedProperty");
    if (observedPropertyPS.hasMultipleSpecifiedValues()) {
        observedProperties = observedPropertyPS.getSpecifiedTypedValueArray(String[].class);
    } else if (observedPropertyPS.hasSingleSpecifiedValue()) {
        observedProperties = new String[] { (String) observedPropertyPS.getSpecifiedValue() };
    } else {
        throw new IllegalArgumentException("no observedProperties found.");
    }

    phenomenon = observedProperties[0];

    String[] foiIdArray = paramCon.getParameterShellWithServiceSidedName("featureOfInterest")
            .getSpecifiedTypedValueArray(String[].class);

    TimeSeriesCollection dataset = new TimeSeriesCollection();

    ObservationSeriesCollection tuples4FOI = new ObservationSeriesCollection(observationCollection, foiIdArray,
            observedProperties, true);

    for (String featureID : foiIdArray) {
        Map<ITimePosition, ObservedValueTuple> tupleMap = tuples4FOI.getAllTuples(featureID);

        // for each selected feature construct a new TimeSeries:
        TimeSeries timeSeries = new TimeSeries(featureID, Second.class);

        if (tupleMap != null) {

            for (ITimePosition timePos : tupleMap.keySet()) {
                ObservedValueTuple tuple = tupleMap.get(timePos);

                double measurement = (Double) tuple.getValue(0);

                timeSeries.add(new Second(new Float(timePos.getSecond()).intValue(), timePos.getMinute(),
                        timePos.getHour(), timePos.getDay(), timePos.getMonth(),
                        new Long(timePos.getYear()).intValue()), measurement);
            }
            dataset.addSeries(timeSeries);
        }
    }
    dataset.setDomainIsPointsInTime(true);

    return drawChart(dataset);
}