天天看點

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;

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