下面說一說jfreechart
JFreeChart是開放源代碼站點SourceForge.net上的一個JAVA項目,它主要用來各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。這些不同式樣的圖表基本上可以滿足目前的要求。
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.plot.PlotOrientation;
import org.jfree.data.category.CategoryDataset;
import org.jfree.data.category.DefaultCategoryDataset;
/**
?* 該類用于演示最簡單的柱狀圖生成
?*
?* @author Winter Lau
?*/
public class BarChartDemo {
?? ?public static void main(String[] args) throws IOException {
?? ??? ?CategoryDataset dataset = getDataSet2();
?? ??? ?JFreeChart chart = ChartFactory.createBarChart3D("水果產量圖", // 圖表標題
?? ??? ??? ??? ?"水果", // 目錄軸的顯示標簽
?? ??? ??? ??? ?"產量", // 數值軸的顯示標簽
?? ??? ??? ??? ?dataset, // 數據集
?? ??? ??? ??? ?PlotOrientation.VERTICAL, // 圖表方向:水平、垂直
?? ??? ??? ??? ?true, // 是否顯示圖例(對于簡單的柱狀圖必須是false)
?? ??? ??? ??? ?false, // 是否生成工具
?? ??? ??? ??? ?false // 是否生成URL鏈接
?? ??? ??? ??? ?);
?? ??? ?FileOutputStream fos_jpg = null;
?? ??? ?try {
?? ??? ??? ?fos_jpg = new FileOutputStream("D:stat\\ProductCount.jpg");
?? ??? ??? ?ChartUtilities
?? ??? ??? ??? ??? ?.writeChartAsJPEG(fos_jpg, 1.0f, chart, 400, 300, null);
?? ??? ?} finally {
?? ??? ??? ?try {
?? ??? ??? ??? ?fos_jpg.close();
?? ??? ??? ?} catch (Exception e) {
?? ??? ??? ?}
?? ??? ?}
?? ?}
?? ?/**
?? ? * 獲取一個演示用的簡單數據集對象
?? ? *
?? ? * @return
?? ? */
?? ?private static CategoryDataset getDataSet() {
?? ??? ?DefaultCategoryDataset dataset = new DefaultCategoryDataset();
?? ??? ?dataset.addValue(100, null, "蘋果");
?? ??? ?dataset.addValue(200, null, "梨子");
?? ??? ?dataset.addValue(300, null, "葡萄");
?? ??? ?dataset.addValue(400, null, "香蕉");
?? ??? ?dataset.addValue(500, null, "荔枝");
?? ??? ?return dataset;
?? ?}
?? ?/**
?? ? * 獲取一個演示用的組合數據集對象
?? ? *
?? ? * @return
?? ? */
?? ?private static CategoryDataset getDataSet2() {
?? ??? ?DefaultCategoryDataset dataset = new DefaultCategoryDataset();
?? ??? ?dataset.addValue(100, "北京", "蘋果");
?? ??? ?dataset.addValue(100, "上海", "蘋果");
?? ??? ?dataset.addValue(100, "廣州", "蘋果");
?? ??? ?dataset.addValue(200, "北京", "梨子");
?? ??? ?dataset.addValue(200, "上海", "梨子");
?? ??? ?dataset.addValue(200, "廣州", "梨子");
?? ??? ?dataset.addValue(300, "北京", "葡萄");
?? ??? ?dataset.addValue(300, "上海", "葡萄");
?? ??? ?dataset.addValue(300, "廣州", "葡萄");
?? ??? ?dataset.addValue(400, "北京", "香蕉");
?? ??? ?dataset.addValue(400, "上海", "香蕉");
?? ??? ?dataset.addValue(400, "廣州", "香蕉");
?? ??? ?dataset.addValue(500, "北京", "荔枝");
?? ??? ?dataset.addValue(500, "上海", "荔枝");
?? ??? ?dataset.addValue(500, "廣州", "荔枝");
?? ??? ?return dataset;
?? ?}
}
必須先準備好開發環境,因為是基于WEB瀏覽器的圖表展現,因此需要一個Servlet引擎或者是J2EE應用服務器(例如WebSphere,Tomcat等)。WEB環境的搭建就不累贅了,讀者根據喜好自行安裝。JFreeChart引擎本身需要到SourceForge.net上下載,地址如下:?
??? ??? http://www.jfree.org/jfreechart/index.html