Example usage for org.jfree.chart.renderer.xy StackedXYAreaRenderer StackedXYAreaRenderer

List of usage examples for org.jfree.chart.renderer.xy StackedXYAreaRenderer StackedXYAreaRenderer

Introduction

In this page you can find the example usage for org.jfree.chart.renderer.xy StackedXYAreaRenderer StackedXYAreaRenderer.

Prototype

public StackedXYAreaRenderer() 

Source Link

Document

Creates a new renderer.

Usage

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

private static JFreeChart createChart(TableXYDataset tablexydataset) {
    JFreeChart jfreechart = ChartFactory.createStackedXYAreaChart("Stacked XY Area Chart Demo 1", "X Value",
            "Y Value", tablexydataset, PlotOrientation.VERTICAL, true, true, false);
    XYPlot xyplot = (XYPlot) jfreechart.getPlot();
    StackedXYAreaRenderer stackedxyarearenderer = new StackedXYAreaRenderer();
    stackedxyarearenderer.setSeriesPaint(0, Color.lightGray);
    stackedxyarearenderer.setBaseToolTipGenerator(new StandardXYToolTipGenerator());
    xyplot.setRenderer(0, stackedxyarearenderer);
    xyplot.setDomainCrosshairVisible(true);
    xyplot.setRangeCrosshairVisible(true);
    return jfreechart;
}

From source file:com.o4s.sarGrapher.graph.java

/**
 * Handles the HTTP <code>GET</code> method.
 *
 * @param request servlet request/*from   w  w  w  . jav  a 2 s.  co m*/
 * @param response servlet response
 * @throws ServletException if a servlet-specific error occurs
 * @throws IOException if an I/O error occurs
 */
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {

    TimeSeriesCollection dataset = new TimeSeriesCollection();

    String title = "";
    String ytitle = "";
    int width = 400;
    int height = 300;
    String graphType = "LINE";
    Boolean useSSH = false;
    HttpSession session = request.getSession();
    if (session != null && session.getAttribute("jsch") != null) {
        useSSH = true;
    }

    for (Enumeration e = request.getParameterNames(); e.hasMoreElements();) {
        String name = e.nextElement().toString();
        String val = request.getParameter(name);
        if (val == null)
            continue; // seems unnecessary but for code clarity
        else if (name.equals("title"))
            title = val;
        else if (name.equals("ytitle"))
            ytitle = val;
        else if (name.equals("width"))
            width = Integer.parseInt(val);
        else if (name.equals("height"))
            height = Integer.parseInt(val);
        else if (name.equals("useSSH"))
            useSSH = true;
        else if (name.equals("type"))
            graphType = val;
        else {
            String[] fflds = val.split(":");
            String fn = fflds[0];
            String[] flds = fflds[1].split(",");

            if (fn == null) {
                Logger.getLogger(graph.class.getName()).log(Level.SEVERE,
                        "Unable to find filename from: {0}={1}", new Object[] { name, val });
                return;
            }

            CSV c = null;
            if (useSSH) {
                CSVs cs = new CSVs();
                c = cs.get(fn);
            }
            if (c == null) {
                Logger.getLogger(graph.class.getName()).log(Level.SEVERE, "Unable to find CSV: {0}", fn);
                return;
            }

            ArrayList ds = new ArrayList();

            for (int i = 0; i < flds.length; i++)
                ds.add(new TimeSeries(name + "." + flds[i]));

            try {
                c.open();
                do {
                    try {
                        if (!c.next())
                            break;
                    } catch (Exception ex) { // Missing field
                        if (ex.getMessage().startsWith("Missing fields"))
                            break;
                        Logger.getLogger(graph.class.getName()).log(Level.SEVERE, null, ex);
                    }

                    String heure = (String) c.get("heure");
                    for (int i = 0; i < flds.length; i++) {
                        Double fv;

                        val = (String) c.get(flds[i]);
                        if (val != null) {
                            fv = Double.parseDouble(val);
                        } else {
                            // try to replace variable
                            String str = flds[i];
                            for (String s : c.getFields()) {
                                str = str.replaceAll(s, c.get(s).toString());
                            }
                            Expression exp = new ExpressionBuilder(str).build();
                            ValidationResult v = exp.validate();
                            String errorMsg = "";
                            if (!v.isValid()) {
                                for (String s : v.getErrors()) {
                                    errorMsg += (errorMsg.isEmpty() ? "" : ",") + s;
                                }
                                if (!errorMsg.isEmpty()) {
                                    Logger.getLogger(graph.class.getName()).log(Level.SEVERE,
                                            "Syntax ERROR or missing variables: {0}", errorMsg);
                                }
                            }
                            fv = exp.evaluate();

                        }
                        //dataset.addValue(fv,flds[i],heure);
                        Date dt = new SimpleDateFormat("HH:mm:ss").parse(heure);
                        ((TimeSeries) ds.get(i)).addOrUpdate(new Minute(dt), fv);
                    }
                } while (true);
            } catch (Exception ex) {
                Logger.getLogger(graph.class.getName()).log(Level.SEVERE, null, ex);
            }

            for (int i = 0; i < flds.length; i++)
                dataset.addSeries((TimeSeries) ds.get(i));

        }
    }
    //JFreeChart barChart = ChartFactory.createBarChart(title, "", "Unit vendue", dataset, PlotOrientation.VERTICAL, true, true, false); 
    //JFreeChart barChart = ChartFactory.createTimeSeriesChart(title, title, dataDir, dataset);// .createStackedBarChart(title, "", "", dataset); 
    //        JFreeChart timechart = ChartFactory.createTimeSeriesChart(  
    //            title, // Title  
    //            "Heure",         // X-axis Label  
    //            "",       // Y-axis Label  
    //            dataset,        // Dataset  
    //            true,          // Show legend  
    //            true,          // Use tooltips  
    //            false          // Generate URLs  
    //        );  
    //        Plot p=timechart.getPlot();

    XYItemRenderer r;

    if (graphType.equals("AREA")) {
        r = new XYAreaRenderer();
    } else if (graphType.equals("BAR")) {
        r = new XYBarRenderer();
    } else if (graphType.equals("STACK")) {
        r = new StackedXYAreaRenderer();
    } else {
        r = new StandardXYItemRenderer();
    }

    final DateAxis domainAxis = new DateAxis("Heure");
    domainAxis.setVerticalTickLabels(false);
    domainAxis.setDateFormatOverride(new SimpleDateFormat("HH:mm"));
    domainAxis.setLowerMargin(0.01);
    domainAxis.setUpperMargin(0.01);
    final ValueAxis rangeAxis = new NumberAxis(ytitle);
    final XYPlot plot = new XYPlot(dataset, domainAxis, rangeAxis, r);
    final JFreeChart chart = new JFreeChart(title, plot);

    //        JFreeChart timechart=null;
    //        if( graphType.equals("AREA") ){
    //            timechart = ChartFactory.createXYAreaChart(title, "Heure", "", dataset, PlotOrientation.VERTICAL, true, true, false); 
    //        } else if( graphType.equals("BAR") ){
    //            timechart = ChartFactory.createXYBarChart(title, "Heure", true, "", dataset, PlotOrientation.VERTICAL, true, true, false); 
    //        } else {
    //            timechart = ChartFactory.createXYLineChart(title, "Heure", "", dataset, PlotOrientation.VERTICAL, true, true, false); 
    //        }

    response.setContentType("image/png");
    OutputStream out = response.getOutputStream();
    ChartUtilities.writeChartAsPNG(out, chart, width, height);

}

From source file:org.moeaframework.analysis.plot.Plot.java

/**
 * Creates a new area plot series.  The data will be stacked with
 * any preceding calls to {@code stacked}.  The series is added to the given
 * dataset, or if {@code null} a new dataset is created.
 * /* www.  ja v a2 s .c o  m*/
 * @param label the label for the series
 * @param x the x values
 * @param y the y values
 * @param dataset the dataset, or {@code null} if a new dataset should be
 *        created
 * @return a reference to this {@code Plot} instance
 */
private Plot stacked(String label, List<? extends Number> x, List<? extends Number> y,
        DefaultTableXYDataset dataset) {
    if (dataset == null) {
        createXYPlot();

        XYPlot plot = chart.getXYPlot();

        if (plot.getDataset(currentDataset) instanceof DefaultTableXYDataset) {
            dataset = (DefaultTableXYDataset) plot.getDataset(currentDataset);
        } else {
            currentDataset++;
            dataset = new DefaultTableXYDataset();
        }
    }

    // generate the dataset
    XYSeries series = new XYSeries(label, true, false);

    for (int i = 0; i < x.size(); i++) {
        series.add(x.get(i), y.get(i));
    }

    dataset.addSeries(series);

    // add the dataset to the plot
    XYPlot plot = chart.getXYPlot();
    plot.setDataset(currentDataset, dataset);

    // setup the renderer
    Paint paint = paintHelper.get(dataset.getSeriesKey(0));
    StackedXYAreaRenderer renderer = new StackedXYAreaRenderer();
    renderer.setAutoPopulateSeriesStroke(false);

    renderer.setBaseStroke(new BasicStroke(3f, 1, 1));
    renderer.setBasePaint(paint);
    renderer.setBaseFillPaint(paint);

    plot.setRenderer(currentDataset, renderer);

    return this;
}