使用JFreeChart創建餅圖

  1. 轉自  : http://hua04104.iteye.com/blog/704094
  2. package com.cs.jfreechart;  
  3.   
  4. import java.awt.Color;  
  5. import java.awt.Font;  
  6. import java.io.FileOutputStream;  
  7. import java.io.IOException;  
  8.   
  9. import org.jfree.chart.ChartFactory;  
  10. import org.jfree.chart.ChartUtilities;  
  11. import org.jfree.chart.JFreeChart;  
  12. import org.jfree.chart.plot.PiePlot;  
  13. import org.jfree.chart.title.LegendTitle;  
  14. import org.jfree.chart.title.TextTitle;  
  15. import org.jfree.data.general.DefaultPieDataset;  
  16.   
  17. public class PieChartDemo {  
  18.   
  19.     /** 
  20.      * @param args 
  21.      * @throws IOException  
  22.      */  
  23.     public static void main(String[] args) throws IOException {  
  24.         //生成餅圖  
  25.         JFreeChart chart = ChartFactory.createPieChart(  
  26.                 "圖書銷售統計表",     //圖表標題  
  27.                 getDateSet(),      //數據  
  28.                 true,             //是否顯示圖例  
  29.                 false,            //是否顯示工具提示  
  30.                 false             //是否生成URL  
  31.         );  
  32.         //設置標題及標題字體  
  33.         chart.setTitle(new TextTitle("圖書銷售統計圖",new Font("黑體",Font.ITALIC,22)));  
  34.         //建一個圖例  
  35.         LegendTitle legendTitle = chart.getLegend(0);  
  36.         //設置圖例字體  
  37.         legendTitle.setItemFont(new Font("宋體",Font.BOLD,14));  
  38.         //獲取餅圖plot對象  
  39.         PiePlot plot = (PiePlot) chart.getPlot();  
  40.         //根據key指定各個數據餅圖的顏色  
  41.         plot.setSectionPaint("JAVA教程", Color.RED);  
  42.         plot.setSectionPaint("c++教程", Color.BLUE);  
  43.         plot.setSectionPaint("C#教程", Color.GREEN);  
  44.         plot.setSectionPaint("VC++教程", Color.ORANGE);  
  45.         //設置plot字體  
  46.         plot.setLabelFont(new Font("宋體",Font.BOLD,18));  
  47.         //設置背景透明度(0~1)  
  48.         plot.setBackgroundAlpha(0.9f);  
  49.         //輸出文件  
  50.         FileOutputStream fos = new FileOutputStream("book.jpg");  
  51.         //用ChartUtilities工具輸出  
  52.         ChartUtilities.writeChartAsJPEG(fos, chart, 800600);  
  53.         fos.close();  
  54.     }  
  55.       
  56.     private static DefaultPieDataset getDateSet() {  
  57.         //提供生成餅圖的數據  
  58.         DefaultPieDataset dataset = new DefaultPieDataset();  
  59.         dataset.setValue("JAVA教程"47);  
  60.         dataset.setValue("c++教程"23);  
  61.         dataset.setValue("C#教程"20);  
  62.         dataset.setValue("VC++教程"10);  
  63.         return dataset;  
  64.     }  
  65.   
  66. }  
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章