Example usage for org.jfree.chart.plot CombinedDomainCategoryPlot add

List of usage examples for org.jfree.chart.plot CombinedDomainCategoryPlot add

Introduction

In this page you can find the example usage for org.jfree.chart.plot CombinedDomainCategoryPlot add.

Prototype

public void add(CategoryPlot subplot) 

Source Link

Document

Adds a subplot to the combined chart and sends a PlotChangeEvent to all registered listeners.

Usage

From source file:org.matsim.counts.algorithms.graphs.BoxPlotNormalizedErrorGraph.java

@SuppressWarnings("unchecked")
@Override/*from   w w  w . ja v  a 2s . c o m*/
public JFreeChart createChart(final int nbr) {

    DefaultBoxAndWhiskerCategoryDataset dataset0 = new DefaultBoxAndWhiskerCategoryDataset();
    DefaultBoxAndWhiskerCategoryDataset dataset1 = new DefaultBoxAndWhiskerCategoryDataset();

    final ArrayList<Double>[] listRel = new ArrayList[24];
    final ArrayList<Double>[] listAbs = new ArrayList[24];

    // init
    for (int i = 0; i < 24; i++) {
        listRel[i] = new ArrayList<Double>();
        listAbs[i] = new ArrayList<Double>();
    }

    // add the values of all counting stations to each hour
    for (CountSimComparison cc : this.ccl_) {
        int hour = cc.getHour() - 1;
        listRel[hour].add(cc.calculateNormalizedRelativeError() * 100);
        listAbs[hour].add(cc.getSimulationValue() - cc.getCountValue());
    }

    // add the collected values to the graph / dataset
    for (int i = 0; i < 24; i++) {
        dataset0.add(listRel[i], "Rel Norm Error", Integer.toString(i + 1));
        dataset1.add(listAbs[i], "Abs Error", Integer.toString(i + 1));
    }

    String title = "Iteration: " + this.iteration_;

    final CombinedDomainCategoryPlot plot = new CombinedDomainCategoryPlot();

    final CategoryAxis xAxis = new CategoryAxis("Hour");
    final NumberAxis yAxis0 = new NumberAxis("Norm. Rel. Error [%]");
    final NumberAxis yAxis1 = new NumberAxis("Signed Abs. Error [veh]");
    yAxis0.setAutoRangeIncludesZero(false);
    yAxis1.setAutoRangeIncludesZero(false);

    final BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer();
    renderer.setFillBox(false);
    renderer.setSeriesPaint(0, Color.blue);
    renderer.setSeriesToolTipGenerator(0, new BoxAndWhiskerToolTipGenerator());

    CategoryPlot subplot0 = new CategoryPlot(dataset0, xAxis, yAxis0, renderer);
    CategoryPlot subplot1 = new CategoryPlot(dataset1, xAxis, yAxis1, renderer);

    plot.add(subplot0);
    plot.add(subplot1);

    final CategoryAxis axis1 = new CategoryAxis("hour");
    axis1.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 7));
    axis1.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    plot.setDomainAxis(axis1);

    this.chart_ = new JFreeChart(title, new Font("SansSerif", Font.BOLD, 14), plot, false);
    return this.chart_;
}

From source file:org.matsim.counts.algorithms.graphs.BoxPlotErrorGraph.java

@SuppressWarnings("unchecked")
@Override/*from  w ww. j  ava  2 s  . c om*/
public JFreeChart createChart(final int nbr) {

    DefaultBoxAndWhiskerCategoryDataset dataset0 = new DefaultBoxAndWhiskerCategoryDataset();
    DefaultBoxAndWhiskerCategoryDataset dataset1 = new DefaultBoxAndWhiskerCategoryDataset();

    final ArrayList<Double>[] listRel = new ArrayList[24];
    final ArrayList<Double>[] listAbs = new ArrayList[24];

    // init
    for (int i = 0; i < 24; i++) {
        listRel[i] = new ArrayList<Double>();
        listAbs[i] = new ArrayList<Double>();
    }

    // add the values of all counting stations to each hour
    for (CountSimComparison cc : this.ccl_) {
        int hour = cc.getHour() - 1;
        listRel[hour].add(cc.calculateRelativeError());
        listAbs[hour].add(cc.getSimulationValue() - cc.getCountValue());
    }

    // add the collected values to the graph / dataset
    for (int i = 0; i < 24; i++) {
        dataset0.add(listRel[i], "Rel Error", Integer.toString(i + 1));
        dataset1.add(listAbs[i], "Abs Error", Integer.toString(i + 1));
    }

    String title = "Iteration: " + this.iteration_;

    final CombinedDomainCategoryPlot plot = new CombinedDomainCategoryPlot();

    final CategoryAxis xAxis = new CategoryAxis("Hour");
    final NumberAxis yAxis0 = new NumberAxis("Signed Rel. Error [%]");
    final NumberAxis yAxis1 = new NumberAxis("Signed Abs. Error [veh]");
    yAxis0.setAutoRangeIncludesZero(false);
    yAxis1.setAutoRangeIncludesZero(false);

    final BoxAndWhiskerRenderer renderer = new BoxAndWhiskerRenderer();
    renderer.setFillBox(false);
    renderer.setSeriesPaint(0, Color.blue);
    renderer.setSeriesToolTipGenerator(0, new BoxAndWhiskerToolTipGenerator());

    CategoryPlot subplot0 = new CategoryPlot(dataset0, xAxis, yAxis0, renderer);
    CategoryPlot subplot1 = new CategoryPlot(dataset1, xAxis, yAxis1, renderer);

    plot.add(subplot0);
    plot.add(subplot1);

    final CategoryAxis axis1 = new CategoryAxis("hour");
    axis1.setTickLabelFont(new Font("SansSerif", Font.PLAIN, 7));
    axis1.setCategoryLabelPositions(CategoryLabelPositions.UP_45);
    plot.setDomainAxis(axis1);

    this.chart_ = new JFreeChart(title, new Font("SansSerif", Font.BOLD, 14), plot, false);
    return this.chart_;
}

From source file:charts.Chart.java

public static Vector MultipleStepChartOverlayedMA(CategoryDataset[] datasets, String title, String x_axis_label,
        String y_axis_label, boolean showlegend, float maxvalue, float minvalue, boolean showchart) {

    CategoryAxis domainAxis = new CategoryAxis(x_axis_label);
    ValueAxis rangeAxis = new NumberAxis(y_axis_label);
    rangeAxis.setStandardTickUnits(NumberAxis.createStandardTickUnits());
    rangeAxis.setAutoRange(true);/*w w w .j av  a2 s .c  o  m*/
    CombinedDomainCategoryPlot parent = new CombinedDomainCategoryPlot(new CategoryAxis(x_axis_label));
    DefaultCategoryItemRenderer renderer0 = new DefaultCategoryItemRenderer();
    renderer0.setBaseStroke(new BasicStroke(2.0f));
    renderer0.setBaseSeriesVisibleInLegend(showlegend);
    renderer0.setSeriesPaint(0, Color.RED);//sinal original
    renderer0.setShapesVisible(false);
    CategoryPlot subplot = new CategoryPlot(datasets[0], domainAxis, rangeAxis, renderer0);
    subplot.setBackgroundPaint(Color.white);
    subplot.setRangeGridlinePaint(Color.black);
    subplot.setDomainGridlinesVisible(true);
    parent.add(subplot);

    CategoryAxis domainAxis1 = new CategoryAxis(x_axis_label);
    ValueAxis rangeAxis1 = new NumberAxis(y_axis_label);
    rangeAxis1.setStandardTickUnits(NumberAxis.createStandardTickUnits());
    rangeAxis1.setAutoRange(true);

    CategoryItemRenderer renderer1 = new CategoryStepRenderer(true);
    renderer1.setBaseStroke(new BasicStroke(2.0f));
    renderer1.setBaseSeriesVisibleInLegend(showlegend);
    renderer1.setSeriesPaint(0, Color.BLUE);//sinal quantizado
    CategoryPlot subplot1 = new CategoryPlot(datasets[1], domainAxis1, rangeAxis1, renderer1);
    //subplot.setDataset(1, datasets[1]);
    //subplot.setRenderer(1, renderer1);
    parent.add(subplot1);

    DefaultCategoryItemRenderer renderer2 = new DefaultCategoryItemRenderer();
    renderer2.setBaseStroke(new BasicStroke(2.0f));
    renderer2.setBaseSeriesVisibleInLegend(showlegend);
    renderer2.setShapesVisible(false);
    renderer2.setSeriesPaint(0, Color.BLACK);//sinal normalizado
    subplot1.setDataset(1, datasets[2]);
    subplot1.setRenderer(1, renderer2);

    for (int i = 3; i < datasets.length; i++) {
        DefaultCategoryItemRenderer renderer3 = new DefaultCategoryItemRenderer();
        renderer3.setBaseStroke(new BasicStroke(2.0f));
        renderer3.setBaseSeriesVisibleInLegend(showlegend);
        renderer3.setShapesVisible(false);
        renderer3.setSeriesPaint(0, Color.LIGHT_GRAY);//limiares utilizados para quantizacao.
        subplot1.setDataset(i - 1, datasets[i]);
        subplot1.setRenderer(i - 1, renderer3);
    }

    JFreeChart jfreechart = new JFreeChart(title, parent);
    JPanel jpanel = new ChartPanel(jfreechart);
    JPanel retorno = new ChartPanel(jfreechart);
    retorno.setPreferredSize(new Dimension(defaultwidth, defaultheight));
    jpanel.setPreferredSize(new Dimension(defaultwidth, defaultheight));
    JFrame chartwindow = new JFrame(title);
    chartwindow.setContentPane(jpanel);
    chartwindow.pack();
    RefineryUtilities.centerFrameOnScreen(chartwindow);
    chartwindow.setVisible(showchart);
    Vector res = new Vector();
    res.add(0, jfreechart);
    res.add(1, chartwindow);
    res.add(2, retorno);
    return res;
}