隨筆-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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 铜鼓县| 灵璧县| 磴口县| 洪江市| 五寨县| 托里县| 灵璧县| 叙永县| 文安县| 平南县| 大港区| 沧州市| 馆陶县| 楚雄市| 拜城县| 台中县| 融水| 麻栗坡县| 兰州市| 开平市| 漳平市| 房产| 邵阳市| 临汾市| 牟定县| 建瓯市| 邯郸县| 景洪市| 泰安市| 伊宁县| 麻栗坡县| 仪陇县| 阳东县| 英超| 齐齐哈尔市| 荃湾区| 白河县| 重庆市| 绥化市| 信丰县| 惠安县|