Example usage for org.jfree.data SubSeriesDataset SubSeriesDataset

List of usage examples for org.jfree.data SubSeriesDataset SubSeriesDataset

Introduction

In this page you can find the example usage for org.jfree.data SubSeriesDataset SubSeriesDataset.

Prototype

public SubSeriesDataset(final SeriesDataset parent, final int series) 

Source Link

Document

Creates a SubSeriesDataset using one series from parent.

Usage

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

/**
 * Create and display an overlaid chart.
 * //from  w  w  w  . ja v a  2 s.  co  m
 * @param frameTitle
 *           the frame title.
 * @param data1
 *           dataset1.
 * @param data2
 *           dataset2.
 */
private static void displayYSymbolicOverlaid(final String frameTitle, final XYDataset data1,
        final XYDataset data2) {

    final String title = "Animals Overlaid";
    final String xAxisLabel = "Miles";
    final String yAxisLabel = "Animal";

    // combine the y symbolic values of the two data sets...
    final String[] combinedYSymbolicValues = SampleYSymbolicDataset.combineYSymbolicDataset((YisSymbolic) data1,
            (YisSymbolic) data2);

    // make master dataset...
    final CombinedDataset data = new CombinedDataset();
    data.add(data1);
    data.add(data2);

    // decompose data...
    final XYDataset series0 = new SubSeriesDataset(data, 0);
    final XYDataset series1 = new SubSeriesDataset(data, 1);
    final XYDataset series2 = new SubSeriesDataset(data, 2);
    final XYDataset series3 = new SubSeriesDataset(data, 3);
    final XYDataset series4 = new SubSeriesDataset(data, 4);
    final XYDataset series5 = new SubSeriesDataset(data, 5);
    final XYDataset series6 = new SubSeriesDataset(data, 6);
    final XYDataset series7 = new SubSeriesDataset(data, 7);

    // create main plot...
    final ValueAxis valueAxis = new NumberAxis(xAxisLabel);
    final SymbolicAxis symbolicAxis = new SymbolicAxis(yAxisLabel, combinedYSymbolicValues);
    final XYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot plot = new XYPlot(series0, valueAxis, symbolicAxis, renderer);

    plot.setDataset(1, series1);
    final XYItemRenderer renderer1 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    plot.setRenderer(1, renderer1);

    plot.setDataset(2, series2);
    final XYItemRenderer renderer2 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    plot.setRenderer(2, renderer2);

    plot.setDataset(3, series3);
    final XYItemRenderer renderer3 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    plot.setRenderer(3, renderer3);

    plot.setDataset(4, series4);
    final XYItemRenderer renderer4 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    plot.setRenderer(4, renderer4);

    plot.setDataset(5, series5);
    final XYItemRenderer renderer5 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    plot.setRenderer(5, renderer5);

    plot.setDataset(6, series6);
    final XYItemRenderer renderer6 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    plot.setRenderer(6, renderer6);

    plot.setDataset(7, series7);
    final XYItemRenderer renderer7 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    plot.setRenderer(7, renderer7);

    // make the chart...
    final JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, true);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));

    // and present it in a frame...
    final JFrame frame = new ChartFrame(frameTitle, chart);
    frame.pack();
    RefineryUtilities.positionFrameRandomly(frame);
    frame.show();

}

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

/**
 * Create and display a multi XY plot with horizontal layout.
 * /*www . j a va  2 s . c om*/
 * @param frameTitle
 *           the frame title.
 * @param data1
 *           dataset1.
 * @param data2
 *           dataset2.
 */
private static void displayYSymbolicCombinedHorizontally(final String frameTitle,
        final SampleYSymbolicDataset data1, final SampleYSymbolicDataset data2) {

    final String title = "Animals Horizontally Combined";
    final String xAxisLabel = "Miles";
    final String yAxisLabel = null;

    // combine the y symbolic values of the two data sets
    final String[] combinedYSymbolicValues = SampleYSymbolicDataset.combineYSymbolicDataset(data1, data2);

    // make master dataset...
    final CombinedDataset data = new CombinedDataset();
    data.add(data1);
    data.add(data2);

    // decompose data...
    final XYDataset series0 = new SubSeriesDataset(data, 0);
    final XYDataset series1 = new SubSeriesDataset(data, 1);
    final XYDataset series2 = new SubSeriesDataset(data, 2);
    final XYDataset series3 = new SubSeriesDataset(data, 3);
    final XYDataset series4 = new SubSeriesDataset(data, 4);
    final XYDataset series5 = new SubSeriesDataset(data, 5);
    final XYDataset series6 = new SubSeriesDataset(data, 6);
    final XYDataset series7 = new SubSeriesDataset(data, 7);

    // create axes...
    final ValueAxis valueAxis0 = new NumberAxis(xAxisLabel);
    final ValueAxis valueAxis1 = new NumberAxis(xAxisLabel);
    final ValueAxis valueAxis2 = new NumberAxis(xAxisLabel);
    final ValueAxis valueAxis3 = new NumberAxis(xAxisLabel);
    final ValueAxis valueAxis4 = new NumberAxis(xAxisLabel);
    final ValueAxis valueAxis5 = new NumberAxis(xAxisLabel);
    final ValueAxis valueAxis6 = new NumberAxis(xAxisLabel);
    final ValueAxis valueAxis7 = new NumberAxis(xAxisLabel);
    final SymbolicAxis symbolicAxis = new SymbolicAxis(yAxisLabel, combinedYSymbolicValues);

    // make a combined plot
    final CombinedRangeXYPlot mainPlot = new CombinedRangeXYPlot(symbolicAxis);

    // add the sub-plots
    final XYItemRenderer renderer0 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot0 = new XYPlot(series0, valueAxis0, null, renderer0);
    final XYItemRenderer renderer1 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot1 = new XYPlot(series1, valueAxis1, null, renderer1);
    final XYItemRenderer renderer2 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot2 = new XYPlot(series2, valueAxis2, null, renderer2);
    final XYItemRenderer renderer3 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot3 = new XYPlot(series3, valueAxis3, null, renderer3);
    final XYItemRenderer renderer4 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot4 = new XYPlot(series4, valueAxis4, null, renderer4);
    final XYItemRenderer renderer5 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot5 = new XYPlot(series5, valueAxis5, null, renderer5);
    final XYItemRenderer renderer6 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot6 = new XYPlot(series6, valueAxis6, null, renderer6);
    final XYItemRenderer renderer7 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot7 = new XYPlot(series7, valueAxis7, null, renderer7);

    mainPlot.add(subplot0, 1);
    mainPlot.add(subplot1, 1);
    mainPlot.add(subplot2, 1);
    mainPlot.add(subplot3, 1);
    mainPlot.add(subplot4, 1);
    mainPlot.add(subplot5, 1);
    mainPlot.add(subplot6, 1);
    mainPlot.add(subplot7, 1);

    // make the top level JFreeChart object
    final JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, mainPlot, true);

    // then customise it a little...
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));

    // and present it in a frame...
    final JFrame ySymbolicFrame = new ChartFrame(frameTitle, chart);
    ySymbolicFrame.pack();
    RefineryUtilities.positionFrameRandomly(ySymbolicFrame);
    ySymbolicFrame.show();

}

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

/**
 * Displays an overlaid XYPlot with X and Y symbolic data.
 * //ww w  .jav a  2s  .c  o  m
 * @param frameTitle
 *           the frame title.
 * @param data1
 *           the dataset 1.
 * @param data2
 *           the dataset 2.
 */
private static void displayXYSymbolicOverlaid(final String frameTitle, final XYDataset data1,
        final XYDataset data2) {

    final String title = "Pollutant Overlaid";
    final String xAxisLabel = "Contamination and Type";
    final String yAxisLabel = "Pollutant";

    // combine the x symbolic values of the two data sets
    final String[] combinedXSymbolicValues = SampleXYSymbolicDataset
            .combineXSymbolicDataset((XisSymbolic) data1, (XisSymbolic) data2);

    // combine the y symbolic values of the two data sets
    final String[] combinedYSymbolicValues = SampleXYSymbolicDataset
            .combineYSymbolicDataset((YisSymbolic) data1, (YisSymbolic) data2);

    // make master dataset...
    final CombinedDataset data = new CombinedDataset();
    data.add(data1);
    data.add(data2);

    // decompose data...
    final XYDataset series0 = new SubSeriesDataset(data, 0);
    final XYDataset series1 = new SubSeriesDataset(data, 1);

    // create overlaid plot...
    final SymbolicAxis hsymbolicAxis = new SymbolicAxis(xAxisLabel, combinedXSymbolicValues);
    final SymbolicAxis vsymbolicAxis = new SymbolicAxis(yAxisLabel, combinedYSymbolicValues);

    final XYItemRenderer renderer1 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot plot = new XYPlot(series0, hsymbolicAxis, vsymbolicAxis, renderer1);

    final XYItemRenderer renderer2 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    plot.setDataset(1, series1);
    plot.setRenderer(1, renderer2);

    // make the chart...
    final JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, plot, true);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));

    // and present it in a frame...
    final JFrame frame = new ChartFrame(frameTitle, chart);
    frame.pack();
    RefineryUtilities.positionFrameRandomly(frame);
    frame.show();

}

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

/**
 * Displays an horizontally combined XYPlot with X and Y symbolic data.
 * /*  w w w . j av  a 2  s. co  m*/
 * @param frameTitle
 *           the frame title.
 * @param data1
 *           the dataset 1.
 * @param data2
 *           the dataset 2.
 */
private static void displayXYSymbolicCombinedHorizontally(final String frameTitle, final XYDataset data1,
        final XYDataset data2) {

    final String title = "Pollutant Horizontally Combined";
    final String x1AxisLabel = "Contamination";
    final String x2AxisLabel = "Type";
    final String yAxisLabel = "Pollutant";

    // combine the y symbolic values of the two data sets
    final String[] combinedYSymbolicValues = SampleXYSymbolicDataset
            .combineYSymbolicDataset((YisSymbolic) data1, (YisSymbolic) data2);

    // make master dataset...
    final CombinedDataset data = new CombinedDataset();
    data.add(data1);
    data.add(data2);

    // decompose data...
    final XYDataset series0 = new SubSeriesDataset(data, 0);
    final XYDataset series1 = new SubSeriesDataset(data, 1);

    JFreeChart chart = null;

    // common horizontal and vertical axes
    final SymbolicAxis hsymbolicAxis0 = new SymbolicAxis(x1AxisLabel,
            ((XisSymbolic) data1).getXSymbolicValues());
    final SymbolicAxis hsymbolicAxis1 = new SymbolicAxis(x2AxisLabel,
            ((XisSymbolic) data2).getXSymbolicValues());
    final SymbolicAxis symbolicAxis = new SymbolicAxis(yAxisLabel, combinedYSymbolicValues);

    // create main plot...
    final CombinedRangeXYPlot mainPlot = new CombinedRangeXYPlot(symbolicAxis);

    // add subplots...
    final XYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot0 = new XYPlot(series0, hsymbolicAxis0, null, renderer);
    final XYPlot subplot1 = new XYPlot(series1, hsymbolicAxis1, null, renderer);
    mainPlot.add(subplot0, 1);
    mainPlot.add(subplot1, 1);

    // make the top level JFreeChart object
    chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, mainPlot, true);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));

    // and present it in a frame...
    final JFrame frame = new ChartFrame(frameTitle, chart);
    frame.pack();
    RefineryUtilities.positionFrameRandomly(frame);
    frame.show();

}

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

/**
 * Displays a vertically combined symbolic plot.
 * //from   ww w  .  j  ava  2  s .  c o  m
 * @param frameTitle
 *           the frame title.
 * @param data1
 *           dataset 1.
 * @param data2
 *           dataset 2.
 */
private static void displayYSymbolicCombinedVertically(final String frameTitle,
        final SampleYSymbolicDataset data1, final SampleYSymbolicDataset data2) {

    final String title = "Animals Vertically Combined";
    final String xAxisLabel = "Miles";
    final String yAxisLabel = null;

    // create master dataset...
    final CombinedDataset data = new CombinedDataset();
    data.add(data1);
    data.add(data2);

    // decompose data...
    final XYDataset series0 = new SubSeriesDataset(data, 0);
    final XYDataset series1 = new SubSeriesDataset(data, 1);
    final XYDataset series2 = new SubSeriesDataset(data, 2);
    final XYDataset series3 = new SubSeriesDataset(data, 3);
    final XYDataset series4 = new SubSeriesDataset(data, 4);
    final XYDataset series5 = new SubSeriesDataset(data, 5);
    final XYDataset series6 = new SubSeriesDataset(data, 6);
    final XYDataset series7 = new SubSeriesDataset(data, 7);

    // common horizontal and vertical axes
    final ValueAxis valueAxis = new NumberAxis(xAxisLabel);
    final SymbolicAxis symbolicAxis1 = new SymbolicAxis(yAxisLabel, ((YisSymbolic) data1).getYSymbolicValues());
    final SymbolicAxis symbolicAxis2 = new SymbolicAxis(yAxisLabel, ((YisSymbolic) data2).getYSymbolicValues());

    // create the main plot...
    final CombinedDomainXYPlot mainPlot = new CombinedDomainXYPlot(valueAxis);

    // and the sub-plots...
    final XYItemRenderer renderer0 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot0 = new XYPlot(series0, null, symbolicAxis1, renderer0);
    final XYItemRenderer renderer1 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot1 = new XYPlot(series1, null, symbolicAxis1, renderer1);
    final XYItemRenderer renderer2 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot2 = new XYPlot(series2, null, symbolicAxis1, renderer2);
    final XYItemRenderer renderer3 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot3 = new XYPlot(series3, null, symbolicAxis1, renderer3);
    final XYItemRenderer renderer4 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot4 = new XYPlot(series4, null, symbolicAxis2, renderer4);
    final XYItemRenderer renderer5 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot5 = new XYPlot(series5, null, symbolicAxis2, renderer5);
    final XYItemRenderer renderer6 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot6 = new XYPlot(series6, null, symbolicAxis2, renderer6);
    final XYItemRenderer renderer7 = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot7 = new XYPlot(series7, null, symbolicAxis2, renderer7);

    // add the subplots to the main plot...
    mainPlot.add(subplot0, 1);
    mainPlot.add(subplot1, 1);
    mainPlot.add(subplot2, 1);
    mainPlot.add(subplot3, 1);
    mainPlot.add(subplot4, 1);
    mainPlot.add(subplot5, 1);
    mainPlot.add(subplot6, 1);
    mainPlot.add(subplot7, 1);

    // construct the chart...
    final JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, mainPlot, true);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));

    // and present it in a frame...
    final JFrame frame = new ChartFrame(frameTitle, chart);
    frame.pack();
    RefineryUtilities.positionFrameRandomly(frame);
    frame.show();

}

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

/**
 * Vertically combined sample1 and sample2 and display it.
 * /*from w  w w.j a  v a  2 s . co  m*/
 * @param frameTitle
 *           the frame title.
 * @param data1
 *           the dataset 1.
 * @param data2
 *           the dataset 2.
 */
private static void displayXYSymbolicCombinedVertically(final String frameTitle, final XYDataset data1,
        final XYDataset data2) {

    final String title = "Pollutant Vertically Combined";
    final String xAxisLabel = "Contamination and Type";
    final String yAxisLabel = "Pollutant";

    // combine the x symbolic values of the two data sets
    final String[] combinedXSymbolicValues = SampleXYSymbolicDataset
            .combineXSymbolicDataset((XisSymbolic) data1, (XisSymbolic) data2);

    // make master dataset...
    final CombinedDataset data = new CombinedDataset();
    data.add(data1);
    data.add(data2);

    // decompose data...
    final XYDataset series0 = new SubSeriesDataset(data, 0);
    final XYDataset series1 = new SubSeriesDataset(data, 1);

    // common horizontal and vertical axes
    final SymbolicAxis hsymbolicAxis = new SymbolicAxis(xAxisLabel, combinedXSymbolicValues);

    final SymbolicAxis vsymbolicAxis0 = new SymbolicAxis(yAxisLabel,
            ((YisSymbolic) data1).getYSymbolicValues());

    final SymbolicAxis vsymbolicAxis1 = new SymbolicAxis(yAxisLabel,
            ((YisSymbolic) data2).getYSymbolicValues());

    // create the main plot...
    final CombinedDomainXYPlot mainPlot = new CombinedDomainXYPlot(hsymbolicAxis);

    // add the sub-plots...
    final XYItemRenderer renderer = new StandardXYItemRenderer(StandardXYItemRenderer.SHAPES, null);
    final XYPlot subplot0 = new XYPlot(series0, null, vsymbolicAxis0, renderer);
    final XYPlot subplot1 = new XYPlot(series1, null, vsymbolicAxis1, renderer);

    mainPlot.add(subplot0, 1);
    mainPlot.add(subplot1, 1);

    // make the chart...
    final JFreeChart chart = new JFreeChart(title, JFreeChart.DEFAULT_TITLE_FONT, mainPlot, true);
    chart.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.blue));

    // and present it in a frame...
    final JFrame frame = new ChartFrame(frameTitle, chart);
    frame.pack();
    RefineryUtilities.positionFrameRandomly(frame);
    frame.show();

}

From source file:com.zigabyte.stock.stratplot.StrategyPlotter.java

/** Build combined chart containing the account cash/stocks/total
    values chart over dates on bottom and the percentage change
    over dates chart on top. /*from   w  w w  .  j  a v a2 s .  c o  m*/
    @return y-axes that need to be re-ranged when data changes. **/
private NumberAxis[] plotAccountHistory(XYDataset accountData, String title, Date startDate, Date endDate) {
    final DateAxis dateAxis = new DateAxis();
    dateAxis.setRange(startDate, endDate);
    final NumberAxis percentAxis = new NumberAxis("% change");
    percentAxis.setAutoRangeIncludesZero(false);
    final NumberAxis priceAxis = new NumberAxis("US$");
    priceAxis.setAutoRangeIncludesZero(true);

    boolean useShapes = // use shapes if 3 months or less
            (endDate.getTime() - startDate.getTime() < 93 * 24 * 60 * 60 * 1000L);
    XYLineAndShapeRenderer accountRenderer = new XYLineAndShapeRenderer();
    accountRenderer.setShapesVisible(useShapes);
    XYPlot accountPlot = new XYPlot(accountData, dateAxis, priceAxis, accountRenderer);
    // compare only total percent data to zoom in on its fluctuations
    // for comparison with the compare index such as S&P500 index.
    // Stock value starts at zero, and cash value becomes close to zero,
    // so they fluctuation widely, so leave them out.
    XYDataset accountTotalPercentData = new XYDatasetPercentChangeAdapter(
            new SubSeriesDataset(accountData, BalanceHistoryXYDataset.TOTAL_SERIES));
    XYLineAndShapeRenderer compareRenderer = new XYLineAndShapeRenderer();
    compareRenderer.setShapesVisible(useShapes);
    XYPlot comparePlot = new XYPlot(accountTotalPercentData, dateAxis, percentAxis, compareRenderer);

    String compareIndexSymbol = this.compareIndexSymbolField.getText();
    StockHistory compareHistory = this.histories.get(compareIndexSymbol);
    if (compareHistory != null) {
        XYDataset comparePercentData = new OHLCDatasetPercentChangeAdapter(new OHLCDatasetSubdomainAdapter(
                new OHLCDatasetOfStockHistory(compareHistory), startDate, endDate));
        int compareIndex = 1;
        comparePlot.setDataset(compareIndex, comparePercentData);
        XYLineAndShapeRenderer percentRenderer = new XYLineAndShapeRenderer();
        percentRenderer.setShapesVisible(useShapes);
        comparePlot.setRenderer(compareIndex, percentRenderer);
    }
    // share date axis
    CombinedDomainXYPlot combinedPlot = new CombinedDomainXYPlot(dateAxis);
    combinedPlot.add(comparePlot, 1);
    combinedPlot.add(accountPlot, 1);

    this.chartPanel.setChart(new JFreeChart(title, null, combinedPlot, true));
    return new NumberAxis[] { priceAxis, percentAxis };
}