把困難踩在腳下

          迎難而上

           

          使用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)

          隨筆檔案

          學習網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 四会市| 和静县| 喜德县| 沐川县| 鹰潭市| 连城县| 会昌县| 舞钢市| 大田县| 额尔古纳市| 武乡县| 灵台县| 西昌市| 宁化县| 乃东县| 阿鲁科尔沁旗| 肥东县| 牟定县| 扬中市| 拉孜县| 承德市| 嘉鱼县| 香格里拉县| 申扎县| 灵丘县| 宁化县| 沅江市| 凯里市| 安宁市| 习水县| 托克逊县| 盐山县| 洞头县| 石台县| 武乡县| 卓尼县| 英德市| 上高县| 宁武县| 犍为县| 阜阳市|