Example usage for org.jfree.data.time MovingAverage createMovingAverage

List of usage examples for org.jfree.data.time MovingAverage createMovingAverage

Introduction

In this page you can find the example usage for org.jfree.data.time MovingAverage createMovingAverage.

Prototype

public static XYDataset createMovingAverage(XYDataset source, String suffix, double period, double skip) 

Source Link

Document

Creates a new XYDataset containing the moving averages of each series in the source dataset.

Usage

From source file:org.jfree.chart.demo.MovingAverageDemo1.java

public static XYDataset createDataset() {
    TimeSeries timeseries = new TimeSeries("L&G European Index Trust");
    timeseries.add(new Month(2, 2001), 181.80000000000001D);
    timeseries.add(new Month(3, 2001), 167.30000000000001D);
    timeseries.add(new Month(4, 2001), 153.80000000000001D);
    timeseries.add(new Month(5, 2001), 167.59999999999999D);
    timeseries.add(new Month(6, 2001), 158.80000000000001D);
    timeseries.add(new Month(7, 2001), 148.30000000000001D);
    timeseries.add(new Month(8, 2001), 153.90000000000001D);
    timeseries.add(new Month(9, 2001), 142.69999999999999D);
    timeseries.add(new Month(10, 2001), 123.2D);
    timeseries.add(new Month(11, 2001), 131.80000000000001D);
    timeseries.add(new Month(12, 2001), 139.59999999999999D);
    timeseries.add(new Month(1, 2002), 142.90000000000001D);
    timeseries.add(new Month(2, 2002), 138.69999999999999D);
    timeseries.add(new Month(3, 2002), 137.30000000000001D);
    timeseries.add(new Month(4, 2002), 143.90000000000001D);
    timeseries.add(new Month(5, 2002), 139.80000000000001D);
    timeseries.add(new Month(6, 2002), 137D);
    timeseries.add(new Month(7, 2002), 132.80000000000001D);
    TimeSeries timeseries1 = MovingAverage.createMovingAverage(timeseries, "Six Month Moving Average", 6, 0);
    TimeSeriesCollection timeseriescollection = new TimeSeriesCollection();
    timeseriescollection.addSeries(timeseries);
    timeseriescollection.addSeries(timeseries1);
    return timeseriescollection;
}

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

/**
 * A test for the values calculated from a time series.
 *//*  w  w  w.jav a2s.  c  om*/
@Test
public void test1() {
    TimeSeries source = createDailyTimeSeries1();
    TimeSeries maverage = MovingAverage.createMovingAverage(source, "Moving Average", 3, 3);

    // the moving average series has 7 items, the first three
    // days (11, 12, 13 August are skipped)
    assertEquals(7, maverage.getItemCount());
    double value = maverage.getValue(0).doubleValue();
    assertEquals(14.1, value, EPSILON);
    value = maverage.getValue(1).doubleValue();
    assertEquals(13.4, value, EPSILON);
    value = maverage.getValue(2).doubleValue();
    assertEquals(14.433333333333, value, EPSILON);
    value = maverage.getValue(3).doubleValue();
    assertEquals(14.933333333333, value, EPSILON);
    value = maverage.getValue(4).doubleValue();
    assertEquals(19.8, value, EPSILON);
    value = maverage.getValue(5).doubleValue();
    assertEquals(15.25, value, EPSILON);
    value = maverage.getValue(6).doubleValue();
    assertEquals(12.5, value, EPSILON);
}

From source file:ws.moor.bt.gui.charts.RawDownloadRate.java

private TimeSeries createAverageSeries(TimeSeries timeSeries) {
    return MovingAverage.createMovingAverage(timeSeries, "5 Minute Average", 5 * 60, 0);
}

From source file:org.jfree.data.time.junit.MovingAverageTest.java

/**
 * A test for the values calculated from a time series.
 *///  w w w. jav  a 2 s  .c  o  m
public void test1() {
    TimeSeries source = createDailyTimeSeries1();
    TimeSeries maverage = MovingAverage.createMovingAverage(source, "Moving Average", 3, 3);

    // the moving average series has 7 items, the first three
    // days (11, 12, 13 August are skipped)
    assertEquals(7, maverage.getItemCount());
    double value = maverage.getValue(0).doubleValue();
    assertEquals(14.1, value, EPSILON);
    value = maverage.getValue(1).doubleValue();
    assertEquals(13.4, value, EPSILON);
    value = maverage.getValue(2).doubleValue();
    assertEquals(14.433333333333, value, EPSILON);
    value = maverage.getValue(3).doubleValue();
    assertEquals(14.933333333333, value, EPSILON);
    value = maverage.getValue(4).doubleValue();
    assertEquals(19.8, value, EPSILON);
    value = maverage.getValue(5).doubleValue();
    assertEquals(15.25, value, EPSILON);
    value = maverage.getValue(6).doubleValue();
    assertEquals(12.5, value, EPSILON);
}

From source file:org.jfree.chart.demo.TimeSeriesDemo8.java

/**
 * Creates a sample dataset.//from  w  w w . j ava  2 s . c om
 * 
 * @return a sample dataset.
 */
private XYDataset createDataset() {
    final TimeSeries eur = DemoDatasetFactory.createEURTimeSeries();
    final TimeSeries mav = MovingAverage.createMovingAverage(eur, "30 day moving average", 30, 30);
    final TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(eur);
    dataset.addSeries(mav);
    return dataset;
}

From source file:org.codehaus.mojo.chronos.chart.ResponseChartGenerator.java

private TimeSeriesCollection createResponseDataset(String name, ResponsetimeSamples samples,
        ResourceBundle bundle, ReportConfig config) {
    TimeSeries series = new TimeSeries(name, Millisecond.class);

    samples.appendResponsetimes(series, config.getResponsetimedivider());
    TimeSeriesCollection dataset = new TimeSeriesCollection();
    dataset.addSeries(series);/*  ww  w  . j ava2s  . co m*/

    String averageLabel = bundle.getString("chronos.label.average");
    TimeSeries averageseries = MovingAverage.createMovingAverage(series, averageLabel,
            config.getAverageduration(), 0);
    dataset.addSeries(averageseries);
    return dataset;
}

From source file:org.jfree.chart.demo.CombinedXYPlotDemo3.java

/**
 * Creates a combined XYPlot chart./*from  ww  w .j  a  v a 2  s . c  om*/
 *
 * @return the combined chart.
 */
private JFreeChart createCombinedChart() {

    // create a default chart based on some sample data...
    final TimeSeriesCollection dataset0 = new TimeSeriesCollection();
    final TimeSeries eur = DemoDatasetFactory.createEURTimeSeries();
    dataset0.addSeries(eur);

    final TimeSeriesCollection dataset1 = new TimeSeriesCollection();
    final TimeSeries mav = MovingAverage.createMovingAverage(eur, "EUR/GBP (30 Day MA)", 30, 30);
    dataset1.addSeries(eur);
    dataset1.addSeries(mav);

    final TimeSeriesCollection dataset2 = new TimeSeriesCollection();
    dataset2.addSeries(eur);

    JFreeChart chart = null;

    // make a common vertical axis for all the sub-plots
    final NumberAxis valueAxis = new NumberAxis("Value");
    valueAxis.setAutoRangeIncludesZero(false); // override default

    // make a horizontally combined plot
    final CombinedRangeXYPlot parent = new CombinedRangeXYPlot(valueAxis);

    // add subplot 1...
    final XYPlot subplot1 = new XYPlot(dataset0, new DateAxis("Date 1"), null, new StandardXYItemRenderer());
    parent.add(subplot1, 1);

    // add subplot 2...
    final XYPlot subplot2 = new XYPlot(dataset1, new DateAxis("Date 2"), null, new StandardXYItemRenderer());
    parent.add(subplot2, 1);

    // add subplot 3...
    final XYPlot subplot3 = new XYPlot(dataset2, new DateAxis("Date 3"), null, new XYBarRenderer(0.20));
    parent.add(subplot3, 1);

    // now make the top level JFreeChart
    chart = new JFreeChart("Demo Chart", JFreeChart.DEFAULT_TITLE_FONT, parent, true);

    // then customise it a little...
    final TextTitle subtitle = new TextTitle("This is a subtitle", new Font("SansSerif", Font.BOLD, 12));
    chart.addSubtitle(subtitle);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));
    return chart;

}

From source file:org.jfree.chart.demo.HighLowChartDemo2.java

/**
 * Creates a sample chart.//from   w ww.j av a  2  s .  c  o  m
 * 
 * @param dataset  a dataset.
 * 
 * @return a sample chart.
 */
private JFreeChart createChart(final DefaultHighLowDataset dataset) {

    final JFreeChart chart = ChartFactory.createHighLowChart("OHLC Demo 2", "Time", "Value", dataset, true);

    final DateAxis axis = (DateAxis) chart.getXYPlot().getDomainAxis();
    axis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    final XYDataset dataset2 = MovingAverage.createMovingAverage(dataset, "-MAVG", 3 * 24 * 60 * 60 * 1000L,
            0L);
    final XYPlot plot = (XYPlot) chart.getPlot();
    plot.setDataset(1, dataset2);
    plot.setRenderer(1, new StandardXYItemRenderer());

    return chart;

}

From source file:com.charts.MaxChart.java

public MaxChart(YStockQuote currentStock) throws ParseException {

    DateAxis domainAxis = new DateAxis("Date");
    NumberAxis rangeAxis = new NumberAxis("Price");
    CandlestickRenderer renderer = new CandlestickRenderer();
    XYDataset dataset = getDataSet(currentStock);

    XYPlot mainPlot = new XYPlot(dataset, domainAxis, rangeAxis, renderer);

    //Do some setting up, see the API Doc
    renderer.setSeriesPaint(0, Color.BLACK);

    renderer.setDrawVolume(false);/*from  w  w  w.  jav a 2 s  .  c o  m*/
    rangeAxis.setAutoRangeIncludesZero(false);

    domainAxis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yy"));
    domainAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    //Now create the chart and chart panel
    JFreeChart chart = new JFreeChart(currentStock.get_name(), null, mainPlot, false);
    chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new Dimension(900, 400));

    XYPlot plot = (XYPlot) chart.getPlot();
    LegendTitle legend = new LegendTitle(plot);
    chart.addLegend(legend);
    chart.getLegend().setVisible(true);
    chart.getLegend().setPosition(RectangleEdge.BOTTOM);

    ValueAxis yAxis = (ValueAxis) plot.getRangeAxis();
    DateAxis xAxis = (DateAxis) plot.getDomainAxis();

    xAxis.setDateFormatOverride(new SimpleDateFormat("MMM y"));
    xAxis.setAutoTickUnitSelection(true);
    xAxis.setAutoRange(true);
    renderer.setAutoWidthFactor(0.5);
    renderer.setUpPaint(Color.green);
    renderer.setDownPaint(new Color(0xc0, 0x00, 0x00));
    renderer.setSeriesPaint(0, Color.black);
    StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
    renderer1.setSeriesPaint(0, Color.BLUE);
    TimeSeries movingAverage30 = MovingAverage.createMovingAverage(close, "MA(30)", 30, 0);
    Double currMA30 = (Double) movingAverage30.getDataItem(movingAverage30.getItemCount() - 1).getValue();
    currMA30 = Math.round(currMA30 * 100.0) / 100.0;
    movingAverage30.setKey("MA(30): " + currMA30);
    TimeSeriesCollection collection = new TimeSeriesCollection();
    collection.addSeries(movingAverage30);
    plot.setDataset(1, collection);
    plot.setRenderer(1, renderer1);

    chartPanel.revalidate();
    chartPanel.repaint();
    chartPanel.revalidate();
    chartPanel.repaint();
}

From source file:com.charts.YTDChart.java

public YTDChart(YStockQuote currentStock) throws ParseException {

    DateAxis domainAxis = new DateAxis("Date");
    NumberAxis rangeAxis = new NumberAxis("Price");
    CandlestickRenderer renderer = new CandlestickRenderer();
    XYDataset dataset = getDataSet(currentStock);

    XYPlot mainPlot = new XYPlot(dataset, domainAxis, rangeAxis, renderer);

    //Do some setting up, see the API Doc
    renderer.setSeriesPaint(0, Color.BLACK);

    renderer.setDrawVolume(false);// www.jav  a 2s. co  m
    rangeAxis.setAutoRangeIncludesZero(false);

    domainAxis.setDateFormatOverride(new SimpleDateFormat("dd-MM-yy"));
    domainAxis.setTickMarkPosition(DateTickMarkPosition.MIDDLE);

    //Now create the chart and chart panel
    JFreeChart chart = new JFreeChart(currentStock.get_name(), null, mainPlot, false);
    chartPanel = new ChartPanel(chart);
    chartPanel.setPreferredSize(new Dimension(900, 400));

    XYPlot plot = (XYPlot) chart.getPlot();
    LegendTitle legend = new LegendTitle(plot);
    chart.addLegend(legend);
    chart.getLegend().setVisible(true);
    chart.getLegend().setPosition(RectangleEdge.BOTTOM);

    ValueAxis yAxis = (ValueAxis) plot.getRangeAxis();
    DateAxis xAxis = (DateAxis) plot.getDomainAxis();

    xAxis.setDateFormatOverride(new SimpleDateFormat("MMM y"));
    xAxis.setAutoTickUnitSelection(true);
    xAxis.setAutoRange(true);
    renderer.setAutoWidthFactor(0.5);
    renderer.setUpPaint(Color.green);
    renderer.setDownPaint(new Color(0xc0, 0x00, 0x00));
    renderer.setSeriesPaint(0, Color.black);
    StandardXYItemRenderer renderer1 = new StandardXYItemRenderer();
    renderer1.setSeriesPaint(0, Color.BLUE);
    TimeSeries movingAverage30 = MovingAverage.createMovingAverage(close, "MA(30)", 30, 0);
    Double currMA30 = (Double) movingAverage30.getDataItem(movingAverage30.getItemCount() - 1).getValue();
    currMA30 = Math.round(currMA30 * 100.0) / 100.0;
    movingAverage30.setKey("MA(30): " + currMA30);
    TimeSeriesCollection collection = new TimeSeriesCollection();
    collection.addSeries(movingAverage30);
    plot.setDataset(1, collection);
    plot.setRenderer(1, renderer1);

    chartPanel.revalidate();
    chartPanel.repaint();
    chartPanel.revalidate();
    chartPanel.repaint();
}