使用 JFreeChart 创建基于web的图表
生成柱状图:
package img.jfreechart.test;import java.io.FileOutputStream;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;public class TestBarChart {public static void main(String[] args) throws Exception {CategoryDataset dataset = getDataSet();JFreeChart chart = ChartFactory.createBarChart3D("这里是标题", // 北京上海广州的常见水果的产量柱状图"这里是x坐标的标签", "这里是y坐标的标签",dataset, PlotOrientation.VERTICAL,//图表方向,水平或者垂直true, //是否显示图例,对于简单的柱状图必须是falsefalse,//是否生成工具false);//是否生成url链接FileOutputStream fos = new FileOutputStream("d:\\test.jpg");ChartUtilities.writeChartAsJPEG(fos, chart, 400, 300);fos.close();System.out.println("done...");}public static CategoryDataset getDataSet() {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;}}?去掉3D之后,可以生成2D的图像:

?
?
饼状图:
package img.jfreechart.test;import java.io.FileOutputStream;import org.jfree.chart.ChartFactory;import org.jfree.chart.ChartUtilities;import org.jfree.chart.JFreeChart;import org.jfree.data.general.DefaultPieDataset;public class TestPieChart {public static void main(String[] args) throws Exception{DefaultPieDataset dataset = getDataSet();JFreeChart chart = ChartFactory.createPieChart("这里是标题", dataset, true, //是否显示图例 false,//是否生成工具false);//是否生成url链接FileOutputStream fos = new FileOutputStream("d:\\testpie2.png");ChartUtilities.writeChartAsPNG(fos, chart, 400, 300);fos.close();System.out.println("done...");}public static DefaultPieDataset getDataSet() {DefaultPieDataset dataset = new DefaultPieDataset();dataset.setValue("北京", 100);dataset.setValue("上海", 400);dataset.setValue("重庆", 500);dataset.setValue("广州", 200);dataset.setValue("深圳", 700);dataset.setValue("南京", 800);return dataset;}}?同样的,也有2d和3d两种形式的


参考:http://www.ibm.com/developerworks/cn/java/l-jfreechart/
?
?