当前位置: 代码迷 >> Web前端 >> 运用 JFreeChart 创建基于web的图表
  详细解决方案

运用 JFreeChart 创建基于web的图表

热度:866   发布时间:2012-09-22 21:54:54.0
使用 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, //是否显示图例,对于简单的柱状图必须是false
				false,//是否生成工具
				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/
?
?