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:de.tor.tribes.ui.views.DSWorkbenchStatsFrame.java

public void updateChart(List<TribeStatsElement> pElems) {
    chart = null;/*from   w w  w .java  2s  . com*/
    startPointer = null;
    endPointer = null;
    int idx = jViewSelectionBox.getSelectedIndex();
    if (idx == 0) {
        TimeSeriesCollection pointsDataset = new TimeSeriesCollection();
        for (TribeStatsElement elem : pElems) {
            TimeSeries pointSeries = new TimeSeries("Punkte (" + elem.getTribe().getName() + ")");
            // TimeSeries pointSeries2 = new TimeSeries("Punkte2 (" + elem.getTribe().getName() + ")");
            Long[] timestamps = elem.getTimestamps();
            Long[] points = elem.getPoints();
            for (int i = 0; i < timestamps.length; i++) {
                pointSeries.add(new Second(new Date(timestamps[i])), points[i]);
            }
            pointsDataset.addSeries(pointSeries);
        }
        addDataset("Punkte", pointsDataset);
    } else if (idx == 1) {
        TimeSeriesCollection rankDataset = new TimeSeriesCollection();
        for (TribeStatsElement elem : pElems) {
            TimeSeries rankSeries = new TimeSeries("Rang (" + elem.getTribe().getName() + ")");
            Long[] timestamps = elem.getTimestamps();
            Integer[] ranks = elem.getRanks();
            for (int i = 0; i < timestamps.length; i++) {
                rankSeries.add(new Second(new Date(timestamps[i])), ranks[i]);
            }
            rankDataset.addSeries(rankSeries);
        }
        addDataset("Rang", rankDataset);
    } else if (idx == 2) {
        TimeSeriesCollection villageDataset = new TimeSeriesCollection();
        for (TribeStatsElement elem : pElems) {
            TimeSeries villageSeries = new TimeSeries("Drfer (" + elem.getTribe().getName() + ")");
            Long[] timestamps = elem.getTimestamps();
            Short[] villages = elem.getVillages();
            for (int i = 0; i < timestamps.length; i++) {
                villageSeries.add(new Second(new Date(timestamps[i])), villages[i]);
            }
            villageDataset.addSeries(villageSeries);
        }
        addDataset("Drfer", villageDataset);
    } else if (idx == 3) {
        TimeSeriesCollection killsOffDataset = new TimeSeriesCollection();
        for (TribeStatsElement elem : pElems) {
            TimeSeries bashOffSeries = new TimeSeries("Kills (Off) (" + elem.getTribe().getName() + ")");
            Long[] timestamps = elem.getTimestamps();
            Long[] bashOff = elem.getBashOffPoints();
            for (int i = 0; i < timestamps.length; i++) {
                bashOffSeries.add(new Second(new Date(timestamps[i])), bashOff[i]);
            }
            killsOffDataset.addSeries(bashOffSeries);
        }
        addDataset("Kills (Off)", killsOffDataset);
    } else if (idx == 4) {
        TimeSeriesCollection rankOffDataset = new TimeSeriesCollection();
        for (TribeStatsElement elem : pElems) {
            TimeSeries rankOffSeries = new TimeSeries("Rang (Off) (" + elem.getTribe().getName() + ")");
            Long[] timestamps = elem.getTimestamps();
            Short[] rankOff = elem.getBashOffRank();
            for (int i = 0; i < timestamps.length; i++) {
                rankOffSeries.add(new Second(new Date(timestamps[i])), rankOff[i]);
            }
            rankOffDataset.addSeries(rankOffSeries);
        }
        addDataset("Rang (Off)", rankOffDataset);
    } else if (idx == 5) {
        TimeSeriesCollection killsDefDataset = new TimeSeriesCollection();
        for (TribeStatsElement elem : pElems) {
            TimeSeries bashDefSeries = new TimeSeries("Kills (Def) (" + elem.getTribe().getName() + ")");
            Long[] timestamps = elem.getTimestamps();
            Long[] bashDef = elem.getBashDefPoints();
            for (int i = 0; i < timestamps.length; i++) {
                bashDefSeries.add(new Second(new Date(timestamps[i])), bashDef[i]);
            }
            killsDefDataset.addSeries(bashDefSeries);
        }
        addDataset("Kills (Def)", killsDefDataset);
    } else if (idx == 6) {
        TimeSeriesCollection rankDefDataset = new TimeSeriesCollection();
        for (TribeStatsElement elem : pElems) {
            TimeSeries rankDefSeries = new TimeSeries("Rang (Def) (" + elem.getTribe().getName() + ")");
            Long[] timestamps = elem.getTimestamps();
            Short[] rankDef = elem.getBashDefRank();
            for (int i = 0; i < timestamps.length; i++) {
                rankDefSeries.add(new Second(new Date(timestamps[i])), rankDef[i]);
            }
            rankDefDataset.addSeries(rankDefSeries);
        }
        addDataset("Rang (Def)", rankDefDataset);
    }

    jChartPanel.removeAll();
    theChartPanel = new ChartPanel(chart);
    theChartPanel.setDisplayToolTips(true);
    theChartPanel.setMouseWheelEnabled(true);
    jChartPanel.add(theChartPanel);

    SwingUtilities.invokeLater(new Runnable() {

        @Override
        public void run() {
            jChartPanel.updateUI();
        }
    });

}

From source file:ucar.unidata.idv.control.chart.TimeSeriesChartWrapper.java

/**
 * Create the charts/*  w ww. j a v  a  2 s . com*/
 *
 * @throws RemoteException On badness
 * @throws VisADException On badness
 */
public void loadDatax() throws VisADException, RemoteException {

    createChart();
    times = null;
    List unitList = new ArrayList();
    List dataChoiceWrappers = getDataChoiceWrappers();
    datas.clear();
    ranges.clear();
    try {
        plot.setIgnoreDataSetChanges(true);
        plot.clearRangeAxes();
        plot.setRangeAxis(0, new NumberAxis(""), false);
        for (int dataSetIdx = 0; dataSetIdx < plot.getDatasetCount(); dataSetIdx++) {
            TimeSeriesCollection dataset = (TimeSeriesCollection) plot.getDataset(dataSetIdx);
            dataset.removeAllSeries();
        }

        //            plot.clearDatasets();
        //            dataset.setDomainIsPointsInTime(true);
        Hashtable props = new Hashtable();
        props.put(TrackDataSource.PROP_TRACKTYPE, TrackDataSource.ID_TIMETRACE);

        AxisLocation lastSide = AxisLocation.BOTTOM_OR_RIGHT;
        for (int paramIdx = 0; paramIdx < dataChoiceWrappers.size(); paramIdx++) {
            DataChoiceWrapper wrapper = (DataChoiceWrapper) dataChoiceWrappers.get(paramIdx);
            DataChoice dataChoice = wrapper.getDataChoice();
            FlatField data = getFlatField((FieldImpl) dataChoice.getData(null, props));
            Set domainSet = data.getDomainSet();
            double[][] domain = domainSet.getDoubles(false);
            double[][] samples = data.getValues(false);
            double[] var = samples[0];

            Unit unit = ucar.visad.Util.getDefaultRangeUnits(data)[0];
            Unit displayUnit = null;
            if (unit != null) {
                displayUnit = getDisplayControl().getDisplayConventions().getDisplayUnit(dataChoice.getName(),
                        null);
                if ((displayUnit != null) && !displayUnit.equals(unit)) {
                    var = displayUnit.toThis(var, unit);
                    unit = displayUnit;

                }
            }

            unitList.add(unit);
            double[] timeValues = getTimeValues(samples, (FlatField) data);
            double[][] result = filterData(var, timeValues);
            var = result[0];
            timeValues = result[1];
            TimeSeries series = new TimeSeries(dataChoice.getName() + ((unit == null) ? "" : " [" + unit + "]"),
                    FixedMillisecond.class);

            //TODO: Find the lat/lon/alt index in the domain
            times = timeValues;
            lats = domain[0];
            lons = domain[1];
            alts = domain[2];
            datas.add(var);
            long t1 = System.currentTimeMillis();
            double min = 0;
            double max = 0;
            for (int i = 0; i < var.length; i++) {
                Date dttm = new Date((long) (timeValues[i]));
                //                    series.addOrUpdate(new FixedMillisecond(dttm), var[i]);
                series.add(new FixedMillisecond(dttm), var[i]);
                if ((i == 0) || (var[i] < min)) {
                    min = var[i];
                }
                if ((i == 0) || (var[i] > max)) {
                    max = var[i];
                }
            }
            ranges.add(new ucar.unidata.util.Range(min, max));

            long t2 = System.currentTimeMillis();
            //                System.err.println ("\t time to add:" + (t2-t1));

            TimeSeriesCollection dataset = new TimeSeriesCollection();
            dataset.setDomainIsPointsInTime(true);
            dataset.addSeries(series);
            NumberAxis rangeAxis = new NumberAxis(wrapper.getLabel(unit));
            plot.setRangeAxis(paramIdx, rangeAxis, false);
            plot.setDataset(paramIdx, dataset);

            XYItemRenderer renderer = doMakeRenderer();
            plot.setRenderer(paramIdx, renderer);
            plot.mapDatasetToRangeAxis(paramIdx, paramIdx);
            Color c = wrapper.getColor(paramIdx);
            rangeAxis.setLabelPaint(c);
            renderer.setSeriesPaint(0, c);
            renderer.setSeriesStroke(0, wrapper.getLineState().getStroke());

            AxisLocation side;
            if (wrapper.getSide() == wrapper.SIDE_UNDEFINED) {
                if (lastSide == AxisLocation.TOP_OR_LEFT) {
                    side = AxisLocation.BOTTOM_OR_RIGHT;
                } else {
                    side = AxisLocation.TOP_OR_LEFT;
                }
            } else if (wrapper.getSide() == wrapper.SIDE_LEFT) {
                side = AxisLocation.TOP_OR_LEFT;
            } else {
                side = AxisLocation.BOTTOM_OR_RIGHT;
            }
            lastSide = side;
            plot.setRangeAxisLocation(paramIdx, side);
        }
    } catch (Exception exc) {
        LogUtil.logException("Error creating data set", exc);
        return;
    }

    if (dataChoiceWrappers.size() == 0) {
        NumberAxis axis = new NumberAxis("");
        plot.setRangeAxis(0, axis, false);
        ValueAxis timeAxis = doMakeDateAxis();
        plot.setDomainAxis(0, timeAxis, false);
    }

    plot.setIgnoreDataSetChanges(false);

    try {
        setLocationPositions();
    } catch (Exception exc) {
        LogUtil.logException("Error creating wayPoints", exc);
    }
}

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

protected ChartPanel createIncomeSourcePanel(Currency currency) {
    TimeSeriesCollection timeSeriesCollection = new TimeSeriesCollection();

    for (IncomeSource incomeSource : ApplicationContext.getInstance().getModelRegistry()
            .getNationalEconomyModel(currency).householdsModel.incomeSourceModel.getIndexTypes()) {
        timeSeriesCollection.addSeries(ApplicationContext.getInstance().getModelRegistry()
                .getNationalEconomyModel(currency).householdsModel.incomeSourceModel
                        .getTimeSeries(incomeSource));
    }// ww  w .  ja  va 2s  .c  o  m

    JFreeChart chart = ChartFactory.createTimeSeriesChart("Income Source", "Date", "Income Source",
            timeSeriesCollection, true, true, false);
    configureChart(chart);
    return new ChartPanel(chart);
}

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

/**
 * Some checks for the getRangeBounds() method.
 *///w w w.  ja  va2  s. c  o  m
@Test
public void testGetRangeBounds() {
    TimeSeriesCollection dataset = new TimeSeriesCollection();

    // when the dataset contains no series, we expect the range to be null
    assertNull(dataset.getRangeBounds(false));
    assertNull(dataset.getRangeBounds(true));

    // when the dataset contains one or more series, but those series
    // contain no items, we still expect the range to be null
    TimeSeries s1 = new TimeSeries("S1");
    dataset.addSeries(s1);
    assertNull(dataset.getRangeBounds(false));
    assertNull(dataset.getRangeBounds(true));

    // tests with values
    s1.add(new Year(2012), 1.0);
    assertEquals(new Range(1.0, 1.0), dataset.getRangeBounds(false));
    assertEquals(new Range(1.0, 1.0), dataset.getRangeBounds(true));
    s1.add(new Year(2013), -1.0);
    assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false));
    assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true));
    s1.add(new Year(2014), null);
    assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false));
    assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true));

    // adding a second series
    TimeSeries s2 = new TimeSeries("S2");
    dataset.addSeries(s2);
    assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(false));
    assertEquals(new Range(-1.0, 1.0), dataset.getRangeBounds(true));

    s2.add(new Year(2014), 5.0);
    assertEquals(new Range(-1.0, 5.0), dataset.getRangeBounds(false));
    assertEquals(new Range(-1.0, 5.0), dataset.getRangeBounds(true));

    dataset.removeAllSeries();
    assertNull(dataset.getRangeBounds(false));
    assertNull(dataset.getRangeBounds(true));

    s1 = new TimeSeries("s1");
    s2 = new TimeSeries("s2");
    dataset.addSeries(s1);
    dataset.addSeries(s2);
    assertNull(dataset.getRangeBounds(false));
    assertNull(dataset.getRangeBounds(true));

    s2.add(new Year(2014), 100.0);
    assertEquals(new Range(100.0, 100.0), dataset.getRangeBounds(false));
    assertEquals(new Range(100.0, 100.0), dataset.getRangeBounds(true));
}

From source file:jgnash.ui.report.compiled.MonthlyAccountBalanceChartCompare.java

private TimeSeriesCollection createTimeSeriesCollection(final Account account, final Account a2) {
    //always use this method
    //if (subAccountCheckBox.isApproved()) {
    // Getting the dates to calculate
    LocalDate start = startDateField.getLocalDate().with(TemporalAdjusters.firstDayOfMonth());
    LocalDate stop = endDateField.getLocalDate().with(TemporalAdjusters.lastDayOfMonth());

    List<LocalDate> list = DateUtils.getLastDayOfTheMonths(start, stop);

    TimeSeries t = new TimeSeries(rb.getString("Column.Month"), rb.getString("Column.Month"),
            rb.getString("Column.Balance"));
    TimeSeries t2 = new TimeSeries(rb.getString("Column.Month"), rb.getString("Column.Month"),
            rb.getString("Column.Balance"));

    // For every month, calculate the total amount
    for (final LocalDate localDate : list) {
        final LocalDate d = localDate.with(TemporalAdjusters.lastDayOfMonth());
        final LocalDate s = localDate.with(TemporalAdjusters.firstDayOfMonth());

        // Get the total amount for the account and every sub accounts
        // for the specified date
        //BigDecimal bd_TotalAmount = calculateTotal(s, d, account, account.getCurrencyNode());
        BigDecimal bd_TotalAmount = calculateTotal(s, d, account, subAccountCheckBox.isSelected(),
                account.getCurrencyNode());

        // Include it in the graph
        t.add(new Month(DateUtils.asDate(localDate)), totalModulus(bd_TotalAmount, account.getAccountType()));
        if (jcb_compare.isSelected()) {
            bd_TotalAmount = calculateTotal(s, d, a2, subAccountCheckBox.isSelected(),
                    account.getCurrencyNode());
            t2.add(new Month(DateUtils.asDate(localDate)), totalModulus(bd_TotalAmount, a2.getAccountType()));
        }//from  w ww.j ava 2 s.co m
    }

    TimeSeriesCollection tsc = new TimeSeriesCollection();
    tsc.addSeries(t);
    if (jcb_compare.isSelected()) {
        tsc.addSeries(t2);
    }

    return tsc;
    /*
        return new TimeSeriesCollection(t);
    }
            
    int count = account.getTransactionCount();
            
    if (count > 0) {
        Date start = account.getTransactionAt(0).getDate();
        Date stop = account.getTransactionAt(count - 1).getDate();
        list = DateUtils.getLastDayOfTheMonths(start, stop);
    }
            
    TimeSeries t = new TimeSeries(rb.getString("Column.Month"), rb.getString("Column.Month"), rb.getString("Column.Balance"));
            
    AccountType type = account.getAccountType();
            
    for (Date aList : list) {
        // get balance for the whole month
        Date d = DateUtils.getLastDayOfTheMonth(aList);
        Date s = DateUtils.getFirstDayOfTheMonth(aList);
            
        BigDecimal balance = AccountBalanceDisplayManager.convertToSelectedBalanceMode(type, account.getBalance(s, d));
        t.add(new Month(aList), balance);
    }
            
    return new TimeSeriesCollection(t);
    */
}

From source file:com.android.ddmuilib.log.event.DisplayGraph.java

/**
 * Returns the {@link TimeSeriesCollection} for the occurrence display. If the data set is not
 * yet created, it is first allocated and set up into the {@link org.jfree.chart.JFreeChart} object.
 *//*w  w w  .  j a va 2  s.  co  m*/
private TimeSeriesCollection getOccurrenceDataSet() {
    if (mOccurrenceDataSet == null) {
        mOccurrenceDataSet = new TimeSeriesCollection();

        XYPlot xyPlot = mChart.getXYPlot();
        xyPlot.setDataset(mDataSetCount, mOccurrenceDataSet);

        OccurrenceRenderer renderer = new OccurrenceRenderer();
        renderer.setBaseShapesVisible(false);
        xyPlot.setRenderer(mDataSetCount, renderer);

        mDataSetCount++;
    }

    return mOccurrenceDataSet;
}

From source file:gov.llnl.lc.infiniband.opensm.plugin.gui.chart.PortCounterPlotWorker.java

private XYDataset createDeltaDataset(OSM_FabricDeltaCollection deltaHistory, PortCounterName pcn,
        String seriesName) {//from   w w w  .  j a v  a  2  s  .  c o  m
    TimeSeries series = new TimeSeries(seriesName);

    // iterate through the collection, and build up a time series
    for (int j = 0; j < deltaHistory.getSize(); j++) {
        OSM_FabricDelta delta = deltaHistory.getOSM_FabricDelta(j);

        // find the desired port counter, in this instance
        LinkedHashMap<String, PFM_PortChange> pcL = delta.getPortChanges();
        PFM_PortChange pC = pcL.get(OSM_Port.getOSM_PortKey(Port));
        long lValue = pC.getDelta_port_counter(pcn);

        // correct for missing time periods
        int deltaSeconds = delta.getDeltaSeconds();
        long sweepPeriod = delta.getFabric2().getPerfMgrSweepSecs();
        if (sweepPeriod < deltaSeconds) {
            // graph is reported as counts per period, so if the period is too long, interpolate
            lValue *= sweepPeriod;
            lValue /= deltaSeconds;
        }
        TimeStamp ts = pC.getCounterTimeStamp();

        RegularTimePeriod ms = new FixedMillisecond(ts.getTimeInMillis());
        series.add(ms, (double) lValue);
    }
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);

    return dataset;
}

From source file:com.alibaba.dubbo.monitor.simple.SimpleMonitorService.java

private static void createChart(String key, String service, String method, String date, String[] types,
        Map<String, long[]> data, double[] summary, String path) {
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmm");
    DecimalFormat numberFormat = new DecimalFormat("###,##0.##");
    TimeSeriesCollection xydataset = new TimeSeriesCollection();
    for (int i = 0; i < types.length; i++) {
        String type = types[i];//ww  w .jav a  2  s . co  m
        TimeSeries timeseries = new TimeSeries(type);
        for (Map.Entry<String, long[]> entry : data.entrySet()) {
            try {
                timeseries.add(new Minute(dateFormat.parse(date + entry.getKey())), entry.getValue()[i]);
            } catch (ParseException e) {
                logger.error(e.getMessage(), e);
            }
        }
        xydataset.addSeries(timeseries);
    }
    JFreeChart jfreechart = ChartFactory.createTimeSeriesChart(
            "max: " + numberFormat.format(summary[0])
                    + (summary[1] >= 0 ? " min: " + numberFormat.format(summary[1]) : "") + " avg: "
                    + numberFormat.format(summary[2])
                    + (summary[3] >= 0 ? " sum: " + numberFormat.format(summary[3]) : ""),
            toDisplayService(service) + "  " + method + "  " + toDisplayDate(date), key, xydataset, true, true,
            false);
    jfreechart.setBackgroundPaint(Color.WHITE);
    XYPlot xyplot = (XYPlot) jfreechart.getPlot();
    xyplot.setBackgroundPaint(Color.WHITE);
    xyplot.setDomainGridlinePaint(Color.GRAY);
    xyplot.setRangeGridlinePaint(Color.GRAY);
    xyplot.setDomainGridlinesVisible(true);
    xyplot.setRangeGridlinesVisible(true);
    DateAxis dateaxis = (DateAxis) xyplot.getDomainAxis();
    dateaxis.setDateFormatOverride(new SimpleDateFormat("HH:mm"));
    BufferedImage image = jfreechart.createBufferedImage(600, 300);
    try {
        if (logger.isInfoEnabled()) {
            logger.info("write chart: " + path);
        }
        File methodChartFile = new File(path);
        File methodChartDir = methodChartFile.getParentFile();
        if (methodChartDir != null && !methodChartDir.exists()) {
            methodChartDir.mkdirs();
        }
        FileOutputStream output = new FileOutputStream(methodChartFile);
        try {
            ImageIO.write(image, "png", output);
            output.flush();
        } finally {
            output.close();
        }
    } catch (IOException e) {
        logger.warn(e.getMessage(), e);
    }
}

From source file:tools.descartes.bungee.chart.ChartGenerator.java

public static XYPlot createIntensityPlot(final List<ArrivalRateTuple> intensities) {
    final TimeSeriesCollection dataset = new TimeSeriesCollection();
    final TimeSeries series = new TimeSeries("load intensity");
    for (ArrivalRateTuple intensity : intensities) {
        long milliseconds = (referenceDate.getTime() / 1000 + (long) Math.floor(intensity.getTimeStamp()))
                * 1000;//from w  w w. j a v  a2 s  .  c o  m
        series.add(new FixedMillisecond(milliseconds), intensity.getArrivalRate());
    }
    dataset.addSeries(series);

    XYStepRenderer renderer = new XYStepRenderer();
    //renderer.setSeriesStroke(0, (new BasicStroke(2.0F)));   
    renderer.setSeriesPaint(0, Color.GRAY);
    final NumberAxis rangeAxis = new NumberAxis("Arrival Rate [1/s]");
    //rangeAxis.setRange(0, 220);
    final XYPlot intensityPlot = new XYPlot(dataset, null, rangeAxis, renderer);
    return intensityPlot;
}

From source file:org.paxle.tools.charts.impl.gui.ChartServlet.java

private JFreeChart createMemoryChart() {
    // init time series
    TimeSeries usedmemSeries = new TimeSeries("Used MEM", Minute.class);
    usedmemSeries.setMaximumItemAge(24 * 60);
    this.seriesMap.put(TSERIES_MEMORY_USAGE, usedmemSeries);

    // init collections and chart
    final TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(usedmemSeries);//from w  ww. j  a  v a 2s .c  om

    /*
     * INIT CHART
     */
    JFreeChart chart = ChartFactory.createTimeSeriesChart(null, "Time", "Memory [MB]", dataset, true, false,
            false);

    // change axis data format
    ((DateAxis) chart.getXYPlot().getDomainAxis()).setDateFormatOverride(new SimpleDateFormat("HH:mm"));

    long maxMemory = Runtime.getRuntime().maxMemory();
    if (maxMemory != Long.MAX_VALUE) {
        ((NumberAxis) chart.getXYPlot().getRangeAxis()).setRange(0,
                (double) maxMemory / (double) (1024 * 1024));
    }

    chart.setBackgroundPaint(Color.WHITE);
    return chart;
}