隨筆-126  評論-247  文章-5  trackbacks-0

          接上一篇隨筆 JFreeChart 生成 柱狀圖 ,環境及其配置不變,只是將生成柱狀圖的核心類 CylinderAction 替換成 PieAction,讓 PieAction 來負責餅狀圖的生成,看下代碼:



          package com.fancy.action;

          import java.awt.Color;
          import org.jfree.chart.ChartFactory;
          import org.jfree.chart.JFreeChart;
          import org.jfree.chart.servlet.ServletUtilities;
          import org.jfree.data.general.DefaultPieDataset;
          /**
           * -----------------------------------------
           * @描述  餅狀圖
           * @作者  fancy
           * @郵箱  fancydeepin@yeah.net
           * @日期  2012-8-7 <p>
           * -----------------------------------------
           
          */

          public class PieAction extends BaseAction{

              
          private static final long serialVersionUID = 1L;
              
          private String fileName;
              
              
          public String execute() throws Exception{
                  
                  
          //創建Dataset對象
                  DefaultPieDataset dataset = new DefaultPieDataset();
                  
          //模擬數據
                  dataset.setValue("E-1區"50);
                  dataset.setValue(
          "E-2區"150);
                  dataset.setValue(
          "E-3區"80);
                  dataset.setValue(
          "E-4區"140);
                  dataset.setValue(
          "E-5區"180);
                  dataset.setValue(
          "E-6區"130);
                  dataset.setValue(
          "E-7區"100);
                  
          //創建3D餅狀圖
                  JFreeChart chart = ChartFactory.createPieChart3D("2011年A產品銷售量", dataset, truefalsefalse);
                  
          //設置背景顏色
                  chart.setBackgroundPaint(Color.WHITE);
                  
          //保存圖表
                  fileName = ServletUtilities.saveChartAsPNG(chart, 500300null, getHttpSession());
                  
          return "pie";
              }

              
              
          public String getFileName() {
                  
          return fileName;
              }


          }



          將 cylinder.jsp 拷貝一份名字改成 pie.jsp,其余不變,訪問:http://localhost:8080/jfreechart-demo/pie.html 的結果如圖示:



          從上圖可以看出A產品在每個區銷售的大概份額,但是默認并沒有給顯示所占的百分比,下面通過添加代碼來使得所占百分比能夠顯示出來:


          package com.fancy.action;

          import java.awt.Color;
          import java.text.DecimalFormat;
          import java.text.NumberFormat;
          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.servlet.ServletUtilities;
          import org.jfree.data.general.DefaultPieDataset;
          /**
           * -----------------------------------------
           * @描述  餅狀圖
           * @作者  fancy
           * @郵箱  fancydeepin@yeah.net
           * @日期  2012-8-7 <p>
           * -----------------------------------------
           
          */

          public class PieAction extends BaseAction{

              
          private static final long serialVersionUID = 1L;
              
          private String fileName;
              
              
          public String execute() throws Exception{
                  
                  
          //創建Dataset對象
                  DefaultPieDataset dataset = new DefaultPieDataset();
                  
          //模擬數據
                  dataset.setValue("E-1區"50);
                  dataset.setValue(
          "E-2區"150);
                  dataset.setValue(
          "E-3區"80);
                  dataset.setValue(
          "E-4區"140);
                  dataset.setValue(
          "E-5區"180);
                  dataset.setValue(
          "E-6區"130);
                  dataset.setValue(
          "E-7區"100);
                  
          //創建3D餅狀圖
                  JFreeChart chart = ChartFactory.createPieChart3D("2011年AA產品銷售量", dataset, truefalsefalse);
                  
          //設置背景顏色
                  chart.setBackgroundPaint(Color.WHITE);
                  
                  PiePlot plot 
          = (PiePlot)chart.getPlot();
                  
          // 圖片中顯示百分比:自定義方式,{0} 表示選項, {1} 表示數值,{2} 表示所占比例 ,小數點后兩位 
                  plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(),new DecimalFormat("0.00%")));
                  
                  
          //保存圖表
                  fileName = ServletUtilities.saveChartAsPNG(chart, 500300null, getHttpSession());
                  
          return "pie";
              }

              
              
          public String getFileName() {
                  
          return fileName;
              }


          }



          OK,再次訪問的結果如圖示:





            
          posted on 2012-08-07 10:29 fancydeepin 閱讀(2023) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 汪清县| 乌兰察布市| 揭东县| 梅河口市| 确山县| 泰来县| 临城县| 伊春市| 赤城县| 大英县| 晋宁县| 晋州市| 阳泉市| 阿拉善左旗| 江川县| 绥宁县| 汕尾市| 中牟县| 瓦房店市| 广丰县| 财经| 陇川县| 衡阳市| 新巴尔虎左旗| 永新县| 宁晋县| 陇南市| 连江县| 孟村| 安义县| 新宾| 海城市| 牡丹江市| 台江县| 罗田县| 西盟| 和龙市| 甘泉县| 竹北市| 牙克石市| 松江区|