Example usage for org.jfree.chart.plot PiePlot setStartAngle

List of usage examples for org.jfree.chart.plot PiePlot setStartAngle

Introduction

In this page you can find the example usage for org.jfree.chart.plot PiePlot setStartAngle.

Prototype

public void setStartAngle(double angle) 

Source Link

Document

Sets the starting angle and sends a PlotChangeEvent to all registered listeners.

Usage

From source file:utils.Graphs.java

public static File generate(File baseFolder, String titles[], int[] values, Color backgroundColor) {
    DefaultPieDataset dataset = new DefaultPieDataset();

    // add our data values
    int i = -1;// w  w  w.j  a  va 2s  . c o  m
    for (String title : titles) {
        i++;
        dataset.setValue(title, values[i]);
    }

    final JFreeChart chart =
            //                ChartFactory.createPieChart("", dataset, true, true, false);

            ChartFactory.createPieChart("", // chart title
                    dataset, // data
                    true, // include legend
                    true, false);

    PiePlot plot = (PiePlot) chart.getPlot();
    //PiePlot3D plot = (PiePlot3D) chart.getPlot();
    //plot.setStartAngle(290);
    plot.setStartAngle(45);
    plot.setDirection(Rotation.CLOCKWISE);
    plot.setForegroundAlpha(0.5f);

    //        final PiePlot plot = (PiePlot) chart.getPlot();
    plot.setBackgroundPaint(backgroundColor);

    //        plot.setLegendLabelGenerator(
    //        new StandardPieSectionLabelGenerator("{0} {2}"));

    chart.setBorderVisible(false);
    chart.getPlot().setOutlineVisible(false);
    chart.getLegend().setFrame(BlockBorder.NONE);

    // get the same background
    chart.setBackgroundPaint(backgroundColor);
    chart.getLegend().setBackgroundPaint(backgroundColor);

    // hide the shadow effects
    plot.setShadowXOffset(0);
    plot.setShadowYOffset(0);

    //chart.getLegend().setVisible(false);

    plot.setCircular(true);
    //plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0} {2}", NumberFormat.getNumberInstance(), NumberFormat
    plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{2}", NumberFormat.getNumberInstance(),
            NumberFormat.getPercentInstance()));
    plot.setNoDataMessage("No data found.");

    Color greenColor = new Color(0x8FBC0C);
    Color redColor = new Color(0xFF0000);
    //Color redColor = new Color(0xDA6022);

    plot.setSectionPaint(0, greenColor);
    plot.setSectionPaint(1, redColor);
    plot.setSectionOutlinesVisible(true);

    final ChartRenderingInfo info = new ChartRenderingInfo(new StandardEntityCollection());
    final File file = new File(baseFolder, "chart.png");
    try {
        ChartUtilities.saveChartAsPNG(file, chart, 200, 160, info);
    } catch (IOException ex) {
        Logger.getLogger(Graphs.class.getName()).log(Level.SEVERE, null, ex);
    }
    //        
    ////        final ChartPanel chartPanel = new ChartPanel(chart, true);
    //       final ChartPanel chartPanel = new ChartPanel(chart, true);
    //        chartPanel.setMinimumDrawWidth(0);
    //        chartPanel.setMaximumDrawWidth(Integer.MAX_VALUE);
    //        chartPanel.setMinimumDrawHeight(0);
    //        chartPanel.setMaximumDrawHeight(Integer.MAX_VALUE);
    //        JDialog dialog = new JDialog();
    //        dialog.add(chartPanel);
    //        dialog.setLayout(new GridLayout(1, 1));
    //        dialog.setSize(400, 200);
    //        dialog.setVisible(true);

    return file;
}

From source file:com.ouc.cpss.view.SupTradeChartBuilder.java

private static JFreeChart createJFreeChart(PieDataset dataset) {
    /**/*from   ww w  .ja v  a2  s . c  o m*/
     * JFreeChart
     */
    //?     
    StandardChartTheme standardChartTheme = new StandardChartTheme("CN");
    //     
    standardChartTheme.setExtraLargeFont(new Font("", Font.BOLD, 20));
    //    
    standardChartTheme.setRegularFont(new Font("", Font.PLAIN, 15));
    //?     
    standardChartTheme.setLargeFont(new Font("", Font.PLAIN, 15));
    //?   
    ChartFactory.setChartTheme(standardChartTheme);
    //??  
    //createPieChart 2D; createPieChart3D  3D
    JFreeChart chart = ChartFactory.createPieChart("", dataset, true, true, false);

    //,?
    chart.setTitle(new TextTitle("", new Font("", Font.ITALIC, 22)));

    //?
    LegendTitle legend = chart.getLegend(0);
    //,ture,?
    legend.setItemFont(new Font("", Font.BOLD, 20));

    //?(??)
    PiePlot plot = (PiePlot) chart.getPlot();
    //?==?
    plot.setLabelFont(new Font("", Font.BOLD, 22));
    //
    plot.setBaseSectionOutlinePaint(Color.BLUE);
    //
    plot.setBaseSectionOutlineStroke(new BasicStroke(0.5f));
    //?,??,??
    plot.setDirection(Rotation.CLOCKWISE);//,Rotation.CLOCKWISE
    //()
    plot.setStartAngle(70);
    //???
    //plot.setExplodePercent(1, 0.5D);
    //plot.setExplodePercent("One", 0.5D);
    //,3D?
    plot.setExplodePercent(dataset.getKey(0), 0.1d);
    //
    plot.setLabelLinkPaint(Color.BLUE);
    //
    plot.setLabelOutlinePaint(Color.black);
    //
    plot.setLabelShadowPaint(Color.RED);
    //
    plot.setSectionPaint(1, Color.BLACK);
    // :,{0},{1},{2}?,???
    plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}:{1}\r\n{2}",
            NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));

    //
    plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={2}"));
    //:(true),(false)
    plot.setCircular(true);
    //?
    plot.setNoDataMessage("??...");

    //???
    plot.setToolTipGenerator(new StandardPieToolTipGenerator());
    //
    //plot.setURLGenerator(new StandardPieURLGenerator("detail.jsp"));

    return chart;
}

From source file:com.insa.tp3g1.esbsimulator.view.PieChart.java

/** * Creates a chart */

private JFreeChart createChart(PieDataset dataset, String title) {

    JFreeChart chart = ChartFactory.createPieChart(title, // chart title
            dataset, // data
            true, // include legend
            true, false);/*w w  w.  j a  v  a 2s  .  c  o  m*/

    PiePlot plot = (PiePlot) chart.getPlot();
    plot.setStartAngle(290);
    plot.setDirection(Rotation.CLOCKWISE);
    plot.setForegroundAlpha(0.5f);
    return chart;

}

From source file:ca.sqlpower.wabit.swingui.chart.effect.PieChartAnimator.java

@Override
protected void doFrame(int frame, double pct) {
    JFreeChart pieChart = mpplot.getPieChart();
    PiePlot plot = (PiePlot) pieChart.getPlot();

    plot.setStartAngle(spinInterpolator.value(initialAngle, finalAngle, pct));
    plot.setForegroundAlpha((float) alphaInterpolator.value(0.0, 1.0, pct));

    // need to trigger a repaint, because the pie plot is just a stamper
    mpplot.datasetChanged(new DatasetChangeEvent(pieChart, mpplot.getDataset()));
}

From source file:name.martingeisse.reporting.definition.keycount.UnboundChartBlock.java

@Override
public ChartBlock bindToData(final DataSources dataSources) {

    // generate the dataset from the query
    DefaultPieDataset dataset = new DefaultPieDataset();
    IKeyCountResultSet resultSet = query.bindToData(dataSources);
    while (resultSet.next()) {
        KeyCountEntry entry = resultSet.get();
        dataset.setValue(entry.getKey(), entry.getCount());
    }/*  w  w w . j  ava2  s . c om*/
    resultSet.close();

    // generate the chart
    JFreeChart chart = ChartFactory.createPieChart("My Title", dataset, true, true, false);
    PiePlot plot = (PiePlot) chart.getPlot();
    plot.setStartAngle(290);
    plot.setDirection(Rotation.CLOCKWISE);
    plot.setForegroundAlpha(0.8f);
    return new ChartBlock(chart);

}

From source file:uk.ac.bbsrc.tgac.miso.core.util.ReportsUtils.java

public static String buildHTMLReport(List<? extends Reportable> reportables, String type, List<String> options)
        throws ReportingException {
    Random generator = new Random();
    StringBuilder sb = new StringBuilder();
    Boolean chartbool = false;/*w w w  . ja  v  a2  s. com*/
    if (options.contains("Chart")) {
        chartbool = true;
    }

    // header
    sb.append(
            "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.1//EN\" \"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\">\n"
                    + "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
                    + "<html xmlns=\"http://www.w3.org/1999/xhtml\" xml:lang=\"en-gb\">\n" + "<head>\n"
                    + "    <meta http-equiv=\"Content-Type\" content=\"text/html; charset=ISO-8859-1\">\n"
                    + "<meta http-equiv=\"Pragma\" content=\"no-cache\">\n"
                    + "<meta http-equiv=\"Cache-Control\" content=\"no-cache\">\n"
                    + "<meta http-equiv=\"Expires\" content=\"Sat, 01 Dec 2001 00:00:00 GMT\">\n"
                    + "    <link rel=\"stylesheet\" href=\"/styles/style.css\" type=\"text/css\">\n"
                    + "<title>MISO Report</title>"
                    + "</head><body onLoad=\"self.focus()\"><table border=\"0\" width=\"100%\">\n"
                    + "    <tr>\n" + "        <td class=\"headertable\" align=\"left\" \">\n"
                    + "            <img src=\"/styles/images/miso_logo.png\" alt=\"MISO Logo\" name=\"logo\"\n"
                    + "                                  border=\"0\" id=\"misologo\"/>\n" + "        </td>\n"
                    + "        <td class=\"headertable\" align=\"right\" \">\n"
                    + "            <img src=\"/styles/images/tgac_new_logo.png\" alt=\"TGAC Logo\" name=\"logo\"\n"
                    + "                                  border=\"0\" id=\"tgaclogo\"/>\n" + "        </td>\n"
                    + "    </tr>\n" + "</table><hr/>");
    // end of header

    if (type.equals("Project")) {
        Boolean incOverview = false;
        Boolean incSamples = false;
        if (options.contains("Overview")) {
            incOverview = true;
        }
        if (options.contains("Samples")) {
            incSamples = true;
        }

        if (reportables.size() == 1) {
            //Single Project report
            List reportableslist = new ArrayList<Reportable>(reportables);
            Reportable reportable = (Reportable) reportableslist.get(0);
            Project project = (Project) reportable;
            sb.append("<h1>Project Information</h1><br/><div class='report'>");
            sb.append("<b>Project Name: </b> " + project.getName());
            sb.append("<br/><br/>");
            sb.append("<b>Project Alias: </b> " + project.getAlias());
            sb.append("<br/><br/>");
            sb.append("<b>Project Description: </b> " + project.getDescription());
            sb.append("<br/><br/>");
            sb.append("<b>Progress: </b> " + project.getProgress().name());
            sb.append("<br/><br/>");

            if (project.getOverviews().size() > 0 && incOverview) {
                sb.append("<table class=\"list\">\n" + "            <thead>\n" + "            <tr>\n"
                        + "                <th>Principal Investigator</th>\n"
                        + "                <th>Start Date</th>\n" + "                <th>End Date</th>\n"
                        + "                <th>Proposed Samples</th>\n"
                        + "                <th>QC Passed Sample</th>\n" + "            </tr>\n"
                        + "            </thead>\n" + "            <tbody>");
                for (ProjectOverview overview : project.getOverviews()) {
                    sb.append("<tr>\n" + "                    <td>" + overview.getPrincipalInvestigator()
                            + "</td>\n" + "                    <td>" + overview.getStartDate() + "</td>\n"
                            + "                    <td>" + overview.getEndDate() + "</td>\n"
                            + "                    <td>" + overview.getNumProposedSamples().toString()
                            + "</td>\n" + "                    <td>" + overview.getQcPassedSamples().size()
                            + "</td>\n" + "                </tr>");
                }
                sb.append("</tbody>\n" + "        </table>");
            } else {
                if (incOverview) {
                    sb.append("<b>Overview:</b> None.");
                }
            }
            sb.append("<br/>");
            if (project.getSamples().size() > 0 && incSamples) {
                sb.append("<table class=\"list\">\n" + "            <thead>\n" + "            <tr>\n"
                        + "                <th>Sample Name</th>\n" + "                <th>Sample Alias</th>\n"
                        + "                <th>Type</th>\n" + "                <th>QC Passed</th>\n"
                        + "            </tr>\n" + "            </thead>\n" + "            <tbody>");
                for (Sample sample : project.getSamples()) {
                    sb.append("<tr>\n" + "                    <td><b>" + sample.getName() + "</b></td>\n"
                            + "                    <td>" + sample.getAlias() + "</td>\n"
                            + "                    <td>" + sample.getSampleType() + "</td>\n"
                            + "                    <td>" + sample.getQcPassed().toString() + "</td>\n"
                            + "                </tr>");
                }
                sb.append("</tbody>\n" + "        </table>");
            } else {
                if (incSamples) {
                    sb.append("<b>Samples:</b> None.");
                }
            }

        }
        // Lists of Projects report
        else if (reportables.size() > 1) {
            sb.append("<h1>Projects Information</h1><br/><div class='report'>");
            Map<String, Integer> map = new HashMap<String, Integer>();
            sb.append("<table class=\"list\">\n" + "    <thead>\n" + "    <tr>\n"
                    + "        <th>Project Name</th>\n" + "        <th>Project Alias</th>\n"
                    + "        <th>Project Description</th>\n" + "        <th>Progress</th>\n");
            if (incOverview) {
                sb.append("        <th>Overviews</th>\n");
            }
            if (incSamples) {
                sb.append("        <th>Samples</th>\n");
            }
            sb.append("    </tr>\n" + "    </thead>\n" + "    <tbody>");
            for (Reportable reportable : reportables) {
                Project project = (Project) reportable;
                sb.append("<tr><td>" + project.getName());
                sb.append("</td>");
                sb.append("<td> " + project.getAlias());
                sb.append("</td>");
                sb.append("<td> " + project.getDescription());
                sb.append("</td>");
                sb.append("<td> " + project.getProgress().name());
                sb.append("</td>");
                if (incOverview) {
                    sb.append("<td>");
                    if (project.getOverviews().size() > 0) {
                        sb.append("<ul class='bullets'>");
                        for (ProjectOverview overview : project.getOverviews()) {
                            sb.append("<li>Principal Investigator: " + overview.getPrincipalInvestigator()
                                    + "<br/> Start Date: " + overview.getStartDate() + "<br/> End Date: "
                                    + overview.getEndDate() + "<br/> Proposed Samples: "
                                    + overview.getNumProposedSamples().toString() + "<br/> QC Passed Samples: "
                                    + overview.getQcPassedSamples().size() + "</li>");
                        }
                        sb.append("</ul>");
                    } else {
                        sb.append("None");
                    }
                    sb.append("</td>");
                }
                if (incSamples) {
                    sb.append("<td>");
                    if (project.getSamples().size() > 0) {
                        sb.append("<ul class='bullets'>");
                        for (Sample sample : project.getSamples()) {
                            sb.append("<li>" + sample.getAlias() + "</li>");
                        }
                        sb.append("</ul>");
                    } else {
                        sb.append("None");
                    }
                    sb.append("</td>");
                }
                sb.append("</tr>");
                int count = map.containsKey(project.getProgress().getKey())
                        ? map.get(project.getProgress().getKey())
                        : 0;
                count++;
                map.put(project.getProgress().getKey(), count);
            }
            sb.append("    </tbody>\n" + "</table>");
            Integer unknown = map.containsKey("Unknown") ? map.get("Unknown") : 0;
            Integer active = map.containsKey("Active") ? map.get("Active") : 0;
            Integer inactive = map.containsKey("Inactive") ? map.get("Inactive") : 0;
            Integer cancelled = map.containsKey("Cancelled") ? map.get("Cancelled") : 0;
            Integer proposed = map.containsKey("Proposed") ? map.get("Proposed") : 0;
            Integer pending = map.containsKey("Pending") ? map.get("Pending") : 0;
            Integer approved = map.containsKey("Approved") ? map.get("Approved") : 0;
            Integer completed = map.containsKey("Completed") ? map.get("Completed") : 0;
            //jfreechart
            final DefaultPieDataset data = new DefaultPieDataset();
            data.setValue("Unknown " + unknown, unknown);
            data.setValue("Active " + active, active);
            data.setValue("Inactive " + inactive, inactive);
            data.setValue("Cancelled " + cancelled, cancelled);
            data.setValue("Proposed " + proposed, proposed);
            data.setValue("Pending " + pending, pending);
            data.setValue("Approved " + approved, approved);
            data.setValue("Completed " + completed, completed);

            final JFreeChart chart = ChartFactory.createPieChart("Projects Status Information", // chart title
                    data, // data
                    false, // include legend
                    true, false);

            final PiePlot plot = (PiePlot) chart.getPlot();
            plot.setStartAngle(290);
            plot.setDirection(Rotation.CLOCKWISE);
            plot.setBackgroundPaint(Color.white);
            plot.setForegroundAlpha(0.5f);
            plot.setNoDataMessage("No data to display");
            int r = generator.nextInt();
            File projectchart = new File("../webapps/ROOT/styles/images/projectschart" + r + ".png");
            try {
                ChartUtilities.saveChartAsPNG(projectchart, chart, 500, 300);
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (chartbool) {
                sb.append("<br/><img src='/styles/images/projectschart" + r + ".png'/>");
            }
        } else {
            sb.append("<h1>Project Information</h1><br/><div class='report'>Nothing to Report.");
        }

    } else if (type.equals("Sample")) {
        Boolean incQC = false;
        if (options.contains("QC")) {
            incQC = true;
        }

        if (reportables.size() == 1) {
            //Single Sample report
            List reportableslist = new ArrayList<Reportable>(reportables);
            Reportable reportable = (Reportable) reportableslist.get(0);
            Sample sample = (Sample) reportable;
            sb.append("<h1>Sample Information</h1><br/><div class='report'>");
            sb.append("<b>Sample Name: </b> " + sample.getName());
            sb.append("<br/><br/>");
            sb.append("<b>Project Alias: </b> " + sample.getProject().getAlias());
            sb.append("<br/><br/>");
            sb.append("<b>Sample Alias: </b> " + sample.getAlias());
            sb.append("<br/><br/>");
            sb.append("<b>Sample Description: </b> " + sample.getDescription());
            sb.append("<br/><br/>");
            sb.append("<b>Scientific Name: </b> " + sample.getScientificName());
            sb.append("<br/><br/>");
            sb.append("<b>Sample Type: </b> " + sample.getSampleType());
            sb.append("<br/><br/>");
            sb.append("<b>QC Passed: </b> " + sample.getQcPassed().toString());
            sb.append("<br/><br/>");

            if (sample.getSampleQCs().size() > 0 && incQC) {
                sb.append("<table class=\"list\">\n" + "            <thead>\n" + "            <tr>\n"
                        + "                <th>QCed By</th>\n" + "                <th>QC Date</th>\n"
                        + "                <th>Method</th>\n" + "                <th>Results</th>\n"
                        + "            </tr>\n" + "            </thead>\n" + "            <tbody>");
                for (SampleQC sampleQC : sample.getSampleQCs()) {
                    sb.append("<tr>\n" + "                    <td>" + sampleQC.getQcCreator() + "</td>\n"
                            + "                    <td>" + sampleQC.getQcDate().toString() + "</td>\n"
                            + "                    <td>" + sampleQC.getQcType().getName() + "</td>\n"
                            + "                    <td>" + sampleQC.getResults().toString()
                            + "ng/&#181;l</td>\n" + "                </tr>");
                }
                sb.append("</tbody>\n" + "        </table>");
            } else {
                if (incQC) {
                    sb.append("<b>QC:</b> None.");
                }
            }

        }
        // Lists of Samples report
        else if (reportables.size() > 1) {
            sb.append("<h1>Samples Information</h1><br/><div class='report'>");
            Map<String, Integer> typeMap = new HashMap<String, Integer>();
            Map<String, Integer> qcMap = new HashMap<String, Integer>();
            sb.append("<table class=\"list\">\n" + "    <thead>\n" + "    <tr>\n"
                    + "        <th>Sample Name</th>\n" + "        <th>Project Alias</th>\n"
                    + "        <th>Sample Alias</th>\n" + "        <th>Sample Description</th>\n"
                    + "        <th>Scientific Name</th>\n" + "        <th>Sample Type</th>\n"
                    + "        <th>QC Passed</th>\n");
            if (incQC) {
                sb.append("        <th>QC</th>\n");
            }
            sb.append("    </tr>\n" + "    </thead>\n" + "    <tbody>");
            for (Reportable reportable : reportables) {
                Sample sample = (Sample) reportable;
                sb.append("<tr><td>" + sample.getName());
                sb.append("</td>");
                sb.append("<td>" + sample.getProject().getAlias());
                sb.append("</td>");
                sb.append("<td> " + sample.getAlias());
                sb.append("</td>");
                sb.append("<td> " + sample.getDescription());
                sb.append("</td>");
                sb.append("<td> " + sample.getScientificName());
                sb.append("</td>");
                sb.append("<td> " + sample.getSampleType());
                sb.append("</td>");
                sb.append("<td> " + sample.getQcPassed().toString());
                sb.append("</td>");
                if (incQC) {
                    sb.append("<td>");
                    if (sample.getSampleQCs().size() > 0) {
                        sb.append("<ul class='bullets'>");
                        for (SampleQC sampleQC : sample.getSampleQCs()) {
                            sb.append("<li>\n" + "                    QCed By: " + sampleQC.getQcCreator()
                                    + "<br/>\n" + "                    QC Date: "
                                    + sampleQC.getQcDate().toString() + "<br/>\n"
                                    + "                    Method: " + sampleQC.getQcType().getName()
                                    + "<br/>\n" + "                    Results: "
                                    + sampleQC.getResults().toString() + "ng/&#181;l</li>");
                        }
                        sb.append("</ul>");
                    } else {
                        sb.append("None");
                    }
                    sb.append("</td>");
                }
                sb.append("</tr>");

                int typecount = typeMap.containsKey(sample.getSampleType())
                        ? typeMap.get(sample.getSampleType())
                        : 0;
                typecount++;
                typeMap.put(sample.getSampleType(), typecount);

                int qccount = qcMap.containsKey(sample.getQcPassed().toString())
                        ? qcMap.get(sample.getQcPassed().toString())
                        : 0;
                qccount++;
                qcMap.put(sample.getQcPassed().toString(), qccount);
            }
            sb.append("    </tbody>\n" + "</table>");
            Integer nonGENOMIC = typeMap.containsKey("NON GENOMIC") ? typeMap.get("NON GENOMIC") : 0;
            Integer genomic = typeMap.containsKey("GENOMIC") ? typeMap.get("GENOMIC") : 0;
            Integer other = typeMap.containsKey("OTHER") ? typeMap.get("OTHER") : 0;
            Integer viralRNA = typeMap.containsKey("VIRAL RNA") ? typeMap.get("VIRAL RNA") : 0;
            Integer synthetic = typeMap.containsKey("SYNTHETIC") ? typeMap.get("SYNTHETIC") : 0;

            //jfreechart for type
            final DefaultPieDataset data = new DefaultPieDataset();
            data.setValue("NON GENOMIC " + nonGENOMIC, nonGENOMIC);
            data.setValue("GENOMIC " + genomic, genomic);
            data.setValue("OTHER " + other, other);
            data.setValue("VIRAL RNA " + viralRNA, viralRNA);
            data.setValue("SYNTHETIC " + synthetic, synthetic);

            final JFreeChart chart = ChartFactory.createPieChart("Samples Type Information", // chart title
                    data, // data
                    false, // include legend
                    true, false);

            final PiePlot plot = (PiePlot) chart.getPlot();
            plot.setStartAngle(290);
            plot.setDirection(Rotation.CLOCKWISE);
            plot.setForegroundAlpha(0.5f);
            plot.setBackgroundPaint(Color.white);
            plot.setNoDataMessage("No data to display");
            int r = generator.nextInt();
            File samplechart = new File("../webapps/ROOT/styles/images/samplestypechart" + r + ".png");
            try {
                ChartUtilities.saveChartAsPNG(samplechart, chart, 500, 300);
            } catch (IOException e) {
                e.printStackTrace();
            }

            if (chartbool) {
                sb.append("<br/><img src='/styles/images/samplestypechart" + r + ".png'/>");
            }
            Integer qcpassed = qcMap.containsKey("true") ? qcMap.get("true") : 0;
            Integer qcnotpassed = qcMap.containsKey("false") ? qcMap.get("false") : 0;

            //jfreechart for qc
            final DefaultPieDataset qcdata = new DefaultPieDataset();
            qcdata.setValue("QC Passed " + qcpassed, qcpassed);
            qcdata.setValue("QC Not Passed " + qcnotpassed, qcnotpassed);

            final JFreeChart qcchart = ChartFactory.createPieChart("Samples QC Information", // chart title
                    qcdata, // data
                    false, // include legend
                    true, false);

            final PiePlot qcplot = (PiePlot) qcchart.getPlot();
            qcplot.setStartAngle(290);
            qcplot.setDirection(Rotation.CLOCKWISE);
            qcplot.setForegroundAlpha(0.5f);
            qcplot.setBackgroundPaint(Color.white);
            qcplot.setNoDataMessage("No data to display");
            File sampleqcchart = new File("../webapps/ROOT/styles/images/samplesqcchart" + r + ".png");
            try {
                ChartUtilities.saveChartAsPNG(sampleqcchart, qcchart, 500, 300);
            } catch (IOException e) {
                e.printStackTrace();
            }
            if (chartbool) {
                sb.append(" <img src='/styles/images/samplesqcchart" + r + ".png'/>");
            }
        } else {
            sb.append("<h1>Sample Information</h1><br/><div class='report'>Nothing to Report.");
        }

    } else if (type.equals("Run")) {
        Boolean incAlias = false;
        Boolean incDescription = false;
        if (options.contains("Alias")) {
            incAlias = true;
        }
        if (options.contains("Description")) {
            incDescription = true;
        }

        if (reportables.size() == 1) {
            //Single Run report
            List reportableslist = new ArrayList<Reportable>(reportables);
            Reportable reportable = (Reportable) reportableslist.get(0);
            Run run = (Run) reportable;
            sb.append("<h1>Run Information</h1><br/><div class='report'>");
            sb.append("<b>Run Name: </b> " + run.getName());
            sb.append("<br/><br/>");
            sb.append("<b>Platform: </b> " + run.getPlatformType().getKey());
            sb.append("<br/><br/>");
            sb.append("<b>Sequencer: </b> " + run.getSequencerReference().getName());
            sb.append("<br/><br/>");
            if (incAlias) {
                sb.append("<b>Run Alias: </b> " + run.getAlias());
                sb.append("<br/><br/>");
            }
            if (incDescription) {
                sb.append("<b>Run Description: </b> " + run.getDescription());
                sb.append("<br/><br/>");
            }
            sb.append("<b>Pair End: </b> " + run.getPairedEnd().toString());
            sb.append("<br/><br/>");
            sb.append("<b>Status: </b> " + run.getStatus().getHealth().getKey());
            sb.append("<br/><br/>");

        }
        // Lists of Runs report
        else if (reportables.size() > 1) {
            sb.append("<h1>Runs Information</h1><br/><div class='report'>");
            Map<String, Integer> statusMap = new HashMap<String, Integer>();
            Map<String, Integer> platformMap = new HashMap<String, Integer>();
            sb.append(
                    "<table class=\"list\">\n" + "    <thead>\n" + "    <tr>\n" + "        <th>Run Name</th>\n"
                            + "        <th>Platform</th>\n" + "        <th>Sequencer</th>\n");
            if (incAlias) {
                sb.append("        <th>Run Alias</th>\n");
            }
            if (incDescription) {
                sb.append("        <th>Run Description</th>\n");
            }
            sb.append("        <th>Pair End</th>\n" + "        <th>Status</th>\n" + "    </tr>\n"
                    + "    </thead>\n" + "    <tbody>");
            for (Reportable reportable : reportables) {
                Run run = (Run) reportable;
                sb.append("<tr><td>" + run.getName());
                sb.append("</td>");
                sb.append("<td> " + run.getPlatformType().getKey());
                sb.append("</td>");
                sb.append("<td> " + run.getSequencerReference().getName());
                sb.append("</td>");
                if (incAlias) {
                    sb.append("<td> " + run.getAlias());
                    sb.append("</td>");
                }
                if (incDescription) {
                    sb.append("<td> " + run.getDescription());
                    sb.append("</td>");
                }
                sb.append("<td> " + run.getPairedEnd().toString());
                sb.append("</td>");
                sb.append("<td> " + run.getStatus().getHealth().getKey());
                sb.append("</td></tr>");

                int statuscount = statusMap.containsKey(run.getStatus().getHealth().getKey())
                        ? statusMap.get(run.getStatus().getHealth().getKey())
                        : 0;
                statuscount++;
                statusMap.put(run.getStatus().getHealth().getKey(), statuscount);

                int platformcount = platformMap.containsKey(run.getPlatformType().getKey())
                        ? platformMap.get(run.getPlatformType().getKey())
                        : 0;
                platformcount++;
                platformMap.put(run.getPlatformType().getKey(), platformcount);
            }
            sb.append("    </tbody>\n" + "</table>");
            Integer unknown = statusMap.containsKey("Unknown") ? statusMap.get("Unknown") : 0;
            Integer completed = statusMap.containsKey("Completed") ? statusMap.get("Completed") : 0;
            Integer failed = statusMap.containsKey("Failed") ? statusMap.get("Failed") : 0;
            Integer started = statusMap.containsKey("Started") ? statusMap.get("Started") : 0;
            Integer stopped = statusMap.containsKey("Stopped") ? statusMap.get("Stopped") : 0;
            Integer running = statusMap.containsKey("Running") ? statusMap.get("Running") : 0;

            //jfreechart for status
            final DefaultPieDataset data = new DefaultPieDataset();
            data.setValue("Unknown " + unknown, unknown);
            data.setValue("Completed " + completed, completed);
            data.setValue("Failed " + failed, failed);
            data.setValue("Started " + started, started);
            data.setValue("Stopped " + stopped, stopped);
            data.setValue("Running " + running, running);

            final JFreeChart chart = ChartFactory.createPieChart("Run Status Information", // chart title
                    data, // data
                    false, // include legend
                    true, false);

            final PiePlot plot = (PiePlot) chart.getPlot();
            plot.setStartAngle(290);
            plot.setDirection(Rotation.CLOCKWISE);
            plot.setBackgroundPaint(Color.white);
            plot.setForegroundAlpha(0.5f);
            plot.setNoDataMessage("No data to display");
            int r = generator.nextInt();
            File runchart = new File("../webapps/ROOT/styles/images/runsstatuschart" + r + ".png");
            try {
                ChartUtilities.saveChartAsPNG(runchart, chart, 500, 300);
            } catch (IOException e) {
                e.printStackTrace();
            }

            if (chartbool) {
                sb.append("<br/><img src='/styles/images/runsstatuschart" + r + ".png'/>");
            }

            //        Integer illumina = platformMap.containsKey("Illumina") ? platformMap.get("Illumina") : 0;
            //        Integer ls454 = platformMap.containsKey("LS454") ? platformMap.get("LS454") : 0;
            //        Integer solid = platformMap.containsKey("Solid") ? platformMap.get("Solid") : 0;

            //jfreechart for platform
            //        final DefaultPieDataset platformdata = new DefaultPieDataset();
            //        platformdata.setValue("Illumina "+illumina, illumina);
            //        platformdata.setValue("LS454 "+ls454, ls454);
            //        platformdata.setValue("Solid "+solid, solid);
            //
            //        final JFreeChart platformchart = ChartFactory.createPieChart(
            //          "Run Platform Information",  // chart title
            //          platformdata,                   // data
            //          false,                   // include legend
            //          true,
            //          false
            //        );
            //
            //        final PiePlot platformplot = (PiePlot) platformchart.getPlot();
            //        platformplot.setStartAngle(290);
            //        platformplot.setDirection(Rotation.CLOCKWISE);
            //        platformplot.setBackgroundPaint(Color.white);
            //        platformplot.setForegroundAlpha(0.5f);
            //        platformplot.setNoDataMessage("No data to display");
            //        File runplatformchart = new File("../webapps/ROOT/styles/images/runsplatformchart" + r + ".png");
            //        try {
            //          ChartUtilities.saveChartAsPNG(runplatformchart, platformchart, 500, 300);
            //        }
            //        catch (IOException e) {
            //          e.printStackTrace();
            //        }
            //        if (chartbool) {
            //          sb.append(" <img src='/styles/images/runsplatformchart" + r + ".png'/>");
            //        }
        } else {
            sb.append("<h1>Run Information</h1><br/><div class='report'>Nothing to Report.");
        }

    }

    // footer
    sb.append("</div>\n" + "<div id=\"footer\">\n" + "    <br/>\n" + "\n"
            + "    <p>&copy; 2010 -2011 <a href=\"http://www.tgac.bbsrc.ac.uk/\" target=\"_blank\">The Genome Analysis Centre</a></p>\n"
            + "</div>\n" + "</body></html>");
    // end of footer
    return sb.toString();

}

From source file:co.udea.edu.proyectointegrador.gr11.parqueaderoapp.domain.stadistics.graphics.implement.Grafica.java

@Override
public JFreeChart createPieToUserType(List<TipoUsuarioEstadistica> tipoUsuarios) {
    //Se crea el conjunto de datos para el tipo de usuario
    PieDataset dataset = createDataForUserType(tipoUsuarios);

    JFreeChart pie = ChartFactory.createPieChart3D(TITLE_OF_PIE_CHART, //Titulo del grafigo
            dataset, //Conjunto de datos
            true, //Incluir leyenda
            true, false);//from   w  w  w  .j  av  a  2 s .  c  o m
    PiePlot piePlot = (PiePlot) pie.getPlot();
    piePlot.setStartAngle(200);
    piePlot.setDirection(Rotation.CLOCKWISE);
    piePlot.setForegroundAlpha(0.5f);
    piePlot.setNoDataMessage(NO_DATA_TO_DISPLAY);
    return pie;
}

From source file:com.orange.atk.atkUI.coregui.StatisticTool.java

/**
 * Creates the chart.// w w  w  . j a va2s .  c  om
 * 
 * @param piedataset
 *            the data set
 * @return the created chart
 */
private JFreeChart createChart(PieDataset piedataset) {
    JFreeChart jfreechart = ChartFactory.createPieChart3D("", piedataset, true, true, false);
    jfreechart.setBackgroundPaint(Color.lightGray);
    PiePlot pie3dplot = (PiePlot) jfreechart.getPlot();
    pie3dplot.setStartAngle(0);
    pie3dplot.setDirection(Rotation.CLOCKWISE);
    pie3dplot.setForegroundAlpha(0.5F);
    pie3dplot.setNoDataMessage("No data to display");
    pie3dplot.setSectionPaint(0, Color.GREEN);// passed
    pie3dplot.setSectionPaint(1, Color.RED);// failed
    pie3dplot.setSectionPaint(2, Color.ORANGE);// skipped
    pie3dplot.setSectionPaint(3, Color.LIGHT_GRAY);// not analysed
    pie3dplot.setToolTipGenerator(new MyToolTipGenerator());
    pie3dplot.setLabelGenerator(new MySectionLabelGenerator());
    pie3dplot.setLegendLabelGenerator(new MySectionLabelGenerator());
    return jfreechart;
}

From source file:fr.gouv.diplomatie.applitutoriel.utility.Graphique.java

/**
 * Creer camember3 d./*w  w  w  .ja va2 s  .  c o m*/
 *
 * @param title
 *            the title
 * @param dataset
 *            the dataset
 * @param legend
 *            the legend
 * @param tooltips
 *            the tooltips
 * @param urls
 *            the urls
 * @return the j free chart
 * @throws FontFormatException
 *             the font format exception
 * @throws IOException
 *             Signals that an I/O exception has occurred.
 */
public static JFreeChart creerCamember3D(final String title, final DefaultPieDataset dataset,
        final boolean legend, final boolean tooltips, final boolean urls)
        throws FontFormatException, IOException {

    dataset.sortByValues(SortOrder.DESCENDING);
    final JFreeChart jfreeChart = ChartFactory.createPieChart3D(title, dataset, legend, tooltips, urls);

    jfreeChart.setBackgroundPaint(Color.white);
    jfreeChart.setBorderVisible(true);
    jfreeChart.getLegend().setPosition(RectangleEdge.LEFT);
    final GraphicsEnvironment graph = GraphicsEnvironment.getLocalGraphicsEnvironment();
    final InputStream inputStream = Thread.currentThread().getContextClassLoader()
            .getResourceAsStream("hornet/framework/font/LiberationSans-Bold.ttf");
    final Font font = Font.createFont(Font.TRUETYPE_FONT, inputStream);
    graph.registerFont(font);
    jfreeChart.getLegend().setItemFont(new Font("Liberation Sans", Font.BOLD, 11));
    jfreeChart.getLegend().setHeight(400);
    jfreeChart.getLegend().setBorder(0, 0, 0, 0);
    jfreeChart.setTitle(new TextTitle(title, new Font("Liberation Sans", Font.BOLD, 16)));
    final PiePlot piePlot = (PiePlot) jfreeChart.getPlot();

    final int nbData = dataset.getItemCount();
    int cptColor = 0;
    for (int x = 0; x < nbData; x++) {
        if (cptColor >= listColor.size()) {
            cptColor = 0;
        }
        piePlot.setSectionPaint(dataset.getKey(x), listColor.get(cptColor));

        cptColor++;

    }

    piePlot.setForegroundAlpha(0.5f);
    piePlot.setLabelFont(new Font("Liberation Sans", Font.BOLD, 12));
    piePlot.setLabelOutlineStroke(null);
    piePlot.setLabelLinkStroke(new BasicStroke(0.4f));
    piePlot.setLabelBackgroundPaint(Color.WHITE);
    piePlot.setLabelLinkStyle(PieLabelLinkStyle.STANDARD);
    piePlot.setBackgroundAlpha(0);
    piePlot.setOutlineVisible(false);
    piePlot.setForegroundAlpha(1); // transparence
    piePlot.setInteriorGap(0); // le camembert occupe plus de place
    piePlot.setLabelGenerator(new StandardPieSectionLabelGenerator("{1}"));
    piePlot.setStartAngle(70);
    piePlot.setCircular(true); // force pour avoir un cercle et pas un oval
    piePlot.setMaximumLabelWidth(0.20);
    piePlot.setBaseSectionOutlinePaint(Color.BLACK); // bordure du camembert

    return jfreeChart;

}

From source file:com.polivoto.vistas.acciones.Datos.java

private JFreeChart crearChartPie(PieDataset dataset, String titulo) {
    JFreeChart chart = ChartFactory.createPieChart(titulo, dataset, false, true, false);
    PiePlot plot = (PiePlot) chart.getPlot();
    plot.setStartAngle(290);
    plot.setDirection(Rotation.ANTICLOCKWISE);

    plot.setNoDataMessage("No hay votos");
    try {//from w ww.j  av a  2s. com
        if (ac.getConteoOpcionesPregunta().getJSONObject(pox).getInt("participantes") != 0) {
            int j = 0;
            for (int i = 0; i < ac.getConteoOpcionesPregunta().getJSONObject(pox).getJSONArray("conteo")
                    .length(); i++) {
                try {
                    if (ac.getConteoOpcionesPregunta().getJSONObject(pox).getJSONArray("conteo")
                            .getJSONObject(i).getString("reactivo").equals("Anular mi voto")) {
                        plot.setSectionPaint("Nulo", Color.lightGray);
                    } else {
                        plot.setSectionPaint(ac.getConteoOpcionesPregunta().getJSONObject(pox)
                                .getJSONArray("conteo").getJSONObject(i).getString("reactivo"), colores.get(j));
                        j++;
                    }
                } catch (JSONException ex) {
                    ex.printStackTrace();
                }
            }
        }
    } catch (JSONException ex) {
        ex.printStackTrace();
    }
    plot.setSimpleLabels(true);
    plot.setBackgroundPaint(new GradientPaint(0, 0, Color.white, 0, 1000, Color.white));
    PieSectionLabelGenerator gen = new StandardPieSectionLabelGenerator("{0}: {2} de votos",
            new DecimalFormat("0"), new DecimalFormat("0.000%"));
    plot.setLabelGenerator(gen);
    if (rotating) {
        final Rotator rotate = new Rotator(plot);
        rotate.start();
    }
    return chart;
}