使用JFreeChart生成柱狀圖和餅圖

需要導入的jar包

650) this.width=650;" border="0" alt="" src="http://img1.51cto.com/attachment/201301/091723583.png" />

生成柱狀圖

  1.  import java.awt.Font; 
  2. import java.io.FileOutputStream; 
  3. import java.io.IOException; 
  4.  
  5. import org.jfree.chart.ChartFactory; 
  6. import org.jfree.chart.ChartUtilities; 
  7. import org.jfree.chart.JFreeChart; 
  8. import org.jfree.chart.StandardChartTheme; 
  9. import org.jfree.chart.plot.PlotOrientation; 
  10. import org.jfree.data.category.CategoryDataset; 
  11. import org.jfree.data.category.DefaultCategoryDataset; 
  12.  /**  
  13.  * 該類用於演示最簡單的柱狀圖生成 
  14.  * @author Winter Lau  
  15.  */  
  16.  public class BarChartDemo {  
  17.      public static void main(String[] args) throws IOException{  
  18.         //創建主題樣式      
  19.          StandardChartTheme standardChartTheme=new StandardChartTheme("CN");      
  20.          //設置標題字體      
  21.          standardChartTheme.setExtraLargeFont(new Font("隸書",Font.BOLD,20));      
  22.          //設置圖例的字體      
  23.          standardChartTheme.setRegularFont(new Font("宋書",Font.PLAIN,15));      
  24.          //設置軸向的字體      
  25.          standardChartTheme.setLargeFont(new Font("宋書",Font.PLAIN,15));      
  26.          //應用主題樣式      
  27.          ChartFactory.setChartTheme(standardChartTheme);  
  28.          CategoryDataset dataset = getDataSet();  
  29.          JFreeChart chart = ChartFactory.createBarChart3D(  
  30.                             "水果產量圖"// 圖表標題 
  31.                             "水果"// 目錄軸的顯示標籤 
  32.                             "產量"// 數值軸的顯示標籤 
  33.                              dataset, // 數據集 
  34.                              PlotOrientation.VERTICAL, // 圖表方向:水平、垂直 
  35.                              true,  // 是否顯示圖例(對於簡單的柱狀圖必須是 false) 
  36.                              false// 是否生成工具 
  37.                              false  // 是否生成 URL 鏈接 
  38.                              );  
  39.                              
  40.          FileOutputStream fos_jpg = null;  
  41.          try {  
  42.              fos_jpg = new FileOutputStream("D:\\fruit.jpg");  
  43.              ChartUtilities.writeChartAsJPEG(fos_jpg,chart,400,300);  
  44.          } finally {  
  45.              try {  
  46.                  fos_jpg.close();  
  47.              } catch (Exception e) {}  
  48.          }  
  49.      }  
  50.      /**  
  51.      * 獲取一個演示用的簡單數據集對象 
  52.      * @return  
  53.      */  
  54.      private static CategoryDataset getDataSet() {  
  55.          DefaultCategoryDataset dataset = new DefaultCategoryDataset();  
  56.          dataset.addValue(100"""蘋果");  
  57.          dataset.addValue(200"""梨子");  
  58.          dataset.addValue(300"""葡萄");  
  59.          dataset.addValue(400"""香蕉");  
  60.          dataset.addValue(500"""荔枝");  
  61.          return dataset;  
  62.      }  
  63.      /**  
  64.      * 獲取一個演示用的組合數據集對象 
  65.      * @return  
  66.      */  
  67.      private static CategoryDataset getDataSet2() {  
  68.          DefaultCategoryDataset dataset = new DefaultCategoryDataset();  
  69.          dataset.addValue(100"北京""蘋果");  
  70.          dataset.addValue(100"上海""蘋果");  
  71.          dataset.addValue(100"廣州""蘋果");  
  72.          dataset.addValue(200"北京""梨子");  
  73.          dataset.addValue(200"上海""梨子");  
  74.          dataset.addValue(200"廣州""梨子");  
  75.          dataset.addValue(300"北京""葡萄");  
  76.          dataset.addValue(300"上海""葡萄");  
  77.          dataset.addValue(300"廣州""葡萄");  
  78.          dataset.addValue(400"北京""香蕉");  
  79.          dataset.addValue(400"上海""香蕉");  
  80.          dataset.addValue(400"廣州""香蕉");  
  81.          dataset.addValue(500"北京""荔枝");  
  82.          dataset.addValue(500"上海""荔枝");  
  83.          dataset.addValue(500"廣州""荔枝");  
  84.          return dataset;  
  85.      }  
  86.  }  

生成餅圖

  1.  import java.awt.Font; 
  2. import java.io.FileOutputStream; 
  3. import java.io.IOException; 
  4.  
  5. import org.jfree.chart.ChartFactory; 
  6. import org.jfree.chart.ChartUtilities; 
  7. import org.jfree.chart.JFreeChart; 
  8. import org.jfree.chart.StandardChartTheme; 
  9. import org.jfree.data.general.DefaultPieDataset; 
  10.  /**  
  11.  * 用於演示餅圖的生成 
  12.  * @author Winter Lau  
  13.  */  
  14.  public class PieChartDemo {  
  15.      public static void main(String[] args) throws IOException{  
  16.         //創建主題樣式      
  17.          StandardChartTheme standardChartTheme=new StandardChartTheme("CN");      
  18.          //設置標題字體      
  19.          standardChartTheme.setExtraLargeFont(new Font("隸書",Font.BOLD,20));      
  20.          //設置圖例的字體      
  21.          standardChartTheme.setRegularFont(new Font("宋書",Font.PLAIN,15));      
  22.          //設置軸向的字體      
  23.          standardChartTheme.setLargeFont(new Font("宋書",Font.PLAIN,15));      
  24.          //應用主題樣式      
  25.          ChartFactory.setChartTheme(standardChartTheme);  
  26.          DefaultPieDataset data = getDataSet();  
  27.          JFreeChart chart = ChartFactory.createPieChart("水果產量圖",  // 圖表標題 
  28.          data,  
  29.          true// 是否顯示圖例 
  30.          false,  
  31.          false  
  32.          );  
  33.          // 寫圖表對象到文件,參照柱狀圖生成源碼 
  34.          FileOutputStream fos_jpg = null;  
  35.          try {  
  36.              fos_jpg = new FileOutputStream("D:\\fruit.jpg");  
  37.              ChartUtilities.writeChartAsJPEG(fos_jpg,chart,400,300);  
  38.          } finally {  
  39.              try {  
  40.                  fos_jpg.close();  
  41.              } catch (Exception e) {}  
  42.          }  
  43.      }  
  44.      /**  
  45.      * 獲取一個演示用的簡單數據集對象 
  46.      * @return  
  47.      */  
  48.      private static DefaultPieDataset getDataSet() {  
  49.          DefaultPieDataset dataset = new DefaultPieDataset();  
  50.          dataset.setValue("蘋果",100);  
  51.          dataset.setValue("梨子",200);  
  52.          dataset.setValue("葡萄",300);  
  53.          dataset.setValue("香蕉",400);  
  54.          dataset.setValue("荔枝",500);  
  55.          return dataset;  
  56.      }  
  57.  }  

 

本文出自 “Kenan_ITBlog” 博客,請務必保留此出處http://soukenan.blog.51cto.com/5130995/1118404

發佈了115 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章