用JFreeChart實現簡單的柱狀圖和餅狀圖

用JFreeChart實現簡單的柱狀圖和餅狀圖,簡單便於理解.
java 代碼
  1. package test;   
  2.   
  3. import java.io.FileOutputStream;   
  4. import java.io.IOException;   
  5.   
  6. import org.jfree.data.category.CategoryDataset;   
  7. import org.jfree.data.category.DefaultCategoryDataset;   
  8. import org.jfree.data.general.DefaultPieDataset;   
  9. import org.jfree.chart.*;   
  10. import org.jfree.chart.plot.*;   
  11.   
  12. public class ChartDemo {   
  13.   
  14.     public static void main(String[] args)    
  15.     {   
  16.         ChartDemo chartD = new ChartDemo();   
  17.         chartD.createBarDemo("bar1.jpg");   
  18.         chartD.createPieDemo("pie.jpg");   
  19.            
  20.     }   
  21.        
  22.     //創建柱狀圖   
  23.     public void createBarDemo(String jpgname)   
  24.     {   
  25.         CategoryDataset dataset = getBarDataset();   
  26.         JFreeChart chart = ChartFactory.createBarChart3D(   
  27.                 "水果產量圖""水果","產量", dataset, PlotOrientation.VERTICAL,    
  28.                 true,false,false);   
  29.            
  30.         FileOutputStream jpg = null;   
  31.         try {   
  32.             jpg = new FileOutputStream(jpgname);   
  33.             ChartUtilities.writeChartAsJPEG(jpg,0.5f,chart,400,300,null);   
  34.                
  35.                
  36.         } catch (Exception e) {   
  37.             // TODO 自動生成 catch 塊   
  38.             e.printStackTrace();   
  39.         }   
  40.         finally  
  41.         {   
  42.             try {   
  43.                 jpg.close();   
  44.             } catch (IOException e) {   
  45.                 // TODO 自動生成 catch 塊   
  46.                 e.printStackTrace();   
  47.             }   
  48.         }   
  49.     }   
  50.   
  51.     //獲取柱狀圖數據   
  52.     private CategoryDataset getBarDataset() {   
  53.         DefaultCategoryDataset dataset = new DefaultCategoryDataset();   
  54.         dataset.addValue(100"北京""蘋果");   
  55.         dataset.addValue(200"上海""梨子");   
  56.         dataset.addValue(300"南昌""葡萄");   
  57.         dataset.addValue(400"海南""香蕉");   
  58.         dataset.addValue(500"北京""荔枝");   
  59.         dataset.addValue(-250"上海""荔枝");   
  60.         return dataset;   
  61.     }   
  62.        
  63.     //創建餅圖   
  64.     public void createPieDemo(String jpgname)   
  65.     {   
  66.         DefaultPieDataset dataset = getPieDataset();   
  67.         JFreeChart chart = ChartFactory.createPieChart3D("水果產量", dataset, truetruetrue);   
  68.            
  69.         FileOutputStream jpg = null;   
  70.         try {   
  71.             jpg = new FileOutputStream(jpgname);   
  72.             ChartUtilities.writeChartAsJPEG(jpg,0.5f,chart,400,300,null);   
  73.                
  74.                
  75.         } catch (Exception e) {   
  76.             // TODO 自動生成 catch 塊   
  77.             e.printStackTrace();   
  78.         }   
  79.         finally  
  80.         {   
  81.             try {   
  82.                 jpg.close();   
  83.             } catch (IOException e) {   
  84.                 // TODO 自動生成 catch 塊   
  85.                 e.printStackTrace();   
  86.             }   
  87.         }   
  88.     }   
  89.   
  90.     //獲取餅圖數據   
  91.     private DefaultPieDataset getPieDataset() {   
  92.         DefaultPieDataset dataset = new DefaultPieDataset();   
  93.         dataset.setValue("蘋果"100);   
  94.         dataset.setValue("梨子"200);   
  95.         dataset.setValue("葡萄"300);   
  96.         dataset.setValue("荔枝"400);   
  97.         dataset.setValue("香蕉"500);   
  98.         dataset.setValue("棗子"600);   
  99.         return dataset;   
  100.     }   
  101.        
  102. }   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章