把困難踩在腳下

          迎難而上

           

          使用JFreeChart生成圖表

          要求:運用開源的JFreeChart生成一個柱形圖。

          新建一個project,將JFreeChar的jar包導入到該project,然后新建一個SalesCountServlet  .java

          代碼如下:

           

          package com.dr.demo; 

          import java.awt.Color;
          import java.awt.Font;
          import java.io.FileNotFoundException;
          import java.io.FileOutputStream;
          import java.io.IOException; 

          import org.jfree.chart.ChartFactory;
          import org.jfree.chart.ChartUtilities;
          import org.jfree.chart.JFreeChart;
          import org.jfree.chart.axis.CategoryAxis;
          import org.jfree.chart.axis.CategoryLabelPositions;
          import org.jfree.chart.axis.ValueAxis;
          import org.jfree.chart.plot.CategoryPlot;
          import org.jfree.chart.plot.PlotOrientation;
          import org.jfree.chart.title.TextTitle;
          import org.jfree.data.category.CategoryDataset;
          import org.jfree.data.category.DefaultCategoryDataset; 

          public class SalesCountServlet  

              
          protected static void doGet() {
                  System.out.println(
          "圖表已經建立!");
                  CategoryDataset dataset 
          = getDataSet();
                  String fileName 
          = "SalesCount.jpg";//文件名稱
                  JFreeChart chart = ChartFactory.createBarChart3D("產品銷量圖"// 圖表標題
                          "產品"// 目錄軸的顯示標簽
                          "銷量"// 數值軸的顯示標簽
                          dataset, // 數據集
                          PlotOrientation.VERTICAL, // 圖表方向:水平、垂直
                          true// 是否顯示圖例(對于簡單的柱狀圖必須是false)
                          false// 是否生成工具
                          false // 是否生成URL鏈接
                          );
                  configFont(chart);
          //設置中文格式 

                  FileOutputStream fos_jpg 
          = null;
                  
          try {
                      String statImagePath 
          = "d:";//存放圖表的路徑
                      try {
                          fos_jpg 
          = new FileOutputStream(statImagePath+ fileName);
                      }
           catch (FileNotFoundException e) {
                          e.printStackTrace();
                      }

                      
          try {
                          ChartUtilities.writeChartAsJPEG(fos_jpg, 
          0.5f, chart, 400300,null);
                      }
           catch (IOException e) {
                          e.printStackTrace();
                      }

                  }
           finally {
                      
          try {
                          fos_jpg.close();
                      }
           catch (Exception e) {
                          e.printStackTrace();
                      }

                  }

              }

               
          public static void configFont(JFreeChart chart){   
                      
          // 配置字體   
                      Font xfont = new Font("宋體",Font.PLAIN,12) ;// X軸   
                      Font yfont = new Font("宋體",Font.PLAIN,12) ;// Y軸   
                      Font kfont = new Font("宋體",Font.PLAIN,12) ;// 底部   
                      Font titleFont = new Font("隸書", Font.BOLD , 25) ; // 圖片標題   
                      CategoryPlot plot = chart.getCategoryPlot();// 圖形的繪制結構對象   
                      
          // 圖片標題   
                      chart.setTitle(new TextTitle(chart.getTitle().getText(),titleFont));   
                      
          // 底部   
                      chart.getLegend().setItemFont(kfont);   
                      
          // X 軸   
                      CategoryAxis domainAxis = plot.getDomainAxis();      
                      domainAxis.setLabelFont(xfont);
          // 軸標題   
                      domainAxis.setTickLabelFont(xfont);// 軸數值     
                      domainAxis.setTickLabelPaint(Color.BLUE) ; // 字體顏色   
                      domainAxis.setCategoryLabelPositions(CategoryLabelPositions.UP_45); // 橫軸上的label斜顯示    
                      
          // Y 軸   
                      ValueAxis rangeAxis = plot.getRangeAxis();      
                      rangeAxis.setLabelFont(yfont);    
                      rangeAxis.setLabelPaint(Color.BLUE) ; 
          // 字體顏色   
                      rangeAxis.setTickLabelFont(yfont);     
                  }
            

              
          private static CategoryDataset getDataSet() {
                  DefaultCategoryDataset dataset 
          = new DefaultCategoryDataset();
                      dataset.addValue(
          20"銷售圖表""蘋果");
                      dataset.addValue(
          20"銷售圖表""");
                      dataset.addValue(
          30"銷售圖表""香蕉");
                      dataset.addValue(
          40"銷售圖表""葡萄");
                      dataset.addValue(
          50"銷售圖表""桔子");
                  
          return dataset;
              }

              
          public static void main(String args[]){
                  doGet();
              }

          }
           

          運行程序后就會在d盤根目錄下找到一個SalesCount.jpg的文件,打開顯示結果如下:

          SalesCount

          希望各位大蝦不吝賜教!

          posted on 2011-01-18 17:14 馮魁 閱讀(431) 評論(0)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          公告

          快樂每一天!

          Everything is an object!

          常用鏈接

          留言簿(2)

          隨筆檔案

          學習網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 云龙县| 绵阳市| 崇礼县| 额济纳旗| 合作市| 宣恩县| 峨眉山市| 乾安县| 绿春县| 三江| 山丹县| 宁城县| 新源县| 永寿县| 晴隆县| 蓝山县| 金寨县| 平江县| 抚顺县| 澎湖县| 兴宁市| 平泉县| 屏南县| 临桂县| 沛县| 泸西县| 琼中| 镇平县| 日喀则市| 蛟河市| 犍为县| 崇礼县| 汉川市| 龙门县| 成武县| 阳春市| 漳浦县| 新野县| 太保市| 马山县| 天镇县|