天天看点

JFreeChart(三.饼状图.2)

package com.ygl.chart.pie;



 import java.awt.Font;

 import java.text.NumberFormat;



 import javax.servlet.http.HttpSession;



 import org.jfree.chart.ChartFactory;

 import org.jfree.chart.JFreeChart;

 import org.jfree.chart.labels.StandardPieSectionLabelGenerator;

 import org.jfree.chart.plot.PiePlot;

 import org.jfree.chart.plot.PiePlot3D;

 import org.jfree.chart.servlet.ServletUtilities;

 import org.jfree.chart.title.TextTitle;

 import org.jfree.data.general.DefaultPieDataset;

 import org.jfree.util.Rotation;



 public class PieChart {

 public static String getPieChart(HttpSession session)throws Exception{

    DefaultPieDataset dataset=new DefaultPieDataset();

    dataset.setValue("矿难", 1000);

    dataset.setValue("酒驾", 800);

    dataset.setValue("医疗事故", 400);

    dataset.setValue("其他",100);

    

    JFreeChart chart=ChartFactory.createPieChart3D("非正常死亡人数",dataset,true,true,true);

    //***********************开始********************

      // 副标题

chart.addSubtitle(new TextTitle("2015年度"));


PiePlot pieplot=(PiePlot)chart.getPlot();

pieplot.setLabelFont(new Font("宋体",0,11));

// 设置饼图是圆的(true),还是椭圆的(false);默认为true  

pieplot.setCircular(true);

// 没有数据的时候显示的内容

pieplot.setNoDataMessage("无数据显示");

StandardPieSectionLabelGenerator standarPieIG = new StandardPieSectionLabelGenerator("{0}:({1}.{2})", NumberFormat.getNumberInstance(), NumberFormat.getPercentInstance());  

pieplot.setLabelGenerator(standarPieIG);  


//对某项数据进行突出显示

pieplot.setExplodePercent("医疗事故", 0.23);


PiePlot3D pieplot3d = (PiePlot3D)chart.getPlot(); 


//设置开始角度  

pieplot3d.setStartAngle(120D);  

//设置方向为”顺时针方向“  

pieplot3d.setDirection(Rotation.CLOCKWISE);  

//设置透明度,0.5F为半透明,1为不透明,0为全透明  

pieplot3d.setForegroundAlpha(0.7F);  

    //***************结束********************************

    String filename=ServletUtilities.saveChartAsPNG(chart, 700, 500,null, session);

    return filename;

 }
}
//*******************************************************************************