初學JFreeChart,整理一個例子:(部分來自網頁)
JFreeChart它主要是用來制作各種各樣的圖表,這些圖表包括:餅圖、柱狀圖(普通柱狀圖以及堆棧柱狀圖)、線圖、區域圖、分布圖、混合圖、甘特圖以及一些儀表盤等等。本文用的是JFreeChart 1.0.2 (根據版本不同需要根據類修改部分代碼)下載:http://www.jfree.org/jfreechart/index.html
下載后解壓jfreechart-1.0.2.zip,會發現在lib下有幾個jar文件,本文只介紹生成餅圖的例子:
1,首先將lib下的jcommon-1.0.5.jar和jfreechart-1.0.2.jar放到你的項目的lib下面,
2,然后建一個java類用于輸出;
package com.chart.example;
import java.io.*;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import org.jfree.data.*;
import org.jfree.data.general.DefaultPieDataset;
import org.jfree.chart.*;
import org.jfree.chart.labels.StandardPieSectionLabelGenerator;
import org.jfree.chart.plot.PiePlot3D;
/**
* 用于演示餅圖的生成
* @author Winter Lau
*/
public class PieChartDemo {
public static void main(String[] args) throws IOException{
DefaultPieDataset data = getDataSet();
JFreeChart chart = ChartFactory.createPieChart3D("分銷商分布圖", // 圖表標題
data,
true, // 是否顯示圖例
false,
false
);
//寫圖表對象到文件,參照柱狀圖生成源碼
FileOutputStream fos_jpg = null;
try {
fos_jpg = new FileOutputStream("D:\\client.jpg");
PiePlot3D plot=(PiePlot3D)chart.getPlot();
// 圖片中顯示百分比:默認方式
//plot.setLabelGenerator(new StandardPieSectionLabelGenerat(StandardPieToolTipGenerator.DEFAULT_TOOLTIP_FORMAT));
// 圖片中顯示百分比:自定義方式,{0} 表示選項, {1} 表示數值, {2} 表示所占比例 ,小數點后兩位
plot.setLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})", NumberFormat.getNumberInstance(), new DecimalFormat("0.00%")));
// 圖例顯示百分比:自定義方式, {0} 表示選項, {1} 表示數值, {2} 表示所占比例
plot.setLegendLabelGenerator(new StandardPieSectionLabelGenerator("{0}={1}({2})"));
ChartUtilities.writeChartAsJPEG(fos_jpg,1.0f,chart,400,300,null);
} finally {
try {
fos_jpg.close();
} catch (Exception e) {}
}
}
/**
* 獲取一個演示用的簡單數據集對象
* @return
*/
private static DefaultPieDataset getDataSet() {
DefaultPieDataset dataset = new DefaultPieDataset();
dataset.setValue("一級分銷商",100);
dataset.setValue("二級分銷商",200);
dataset.setValue("三級分銷商",300);
return dataset;
}
}
運行后在你的d盤下會生成一個client.jpg,如下:
