JFreeChart 是Java平台上一个开放的图表绘制类库,它完全使用Java语言编写,是为applications, applets, servlets 以及JSP等使用所设计。


JFreeChart可以生成饼图(pie)、柱状图(bar)、散点图(plots)、时序图(time)

、甘特图

(Gantt)等等多种图表,并且可以产生PNG和JPG(JPEG)的输出,还可以与PDF和EXCEL关联。



JFreeChart

是一款相当不错的Java图形解决方案,基本能够解决目前的图形方面的需求,



官方下载

Java使用JFreeChart插件前,需先导入jar包


右键项目名——》Build Path——》Configure Build Path...——》Libraries——》Add Extenal Jars——》选择上述jar包


-----------------------------------------------------------------



JFreeChart——Line曲线图

import java.io.*;

import org.jfree.data.*;
import org.jfree.chart.*;
import org.jfree.chart.plot.*;

public class lineChart {
	public static void main(String[] args) throws IOException{
		CategoryDataset dataset = getDataSet2();
		JFreeChart chart = ChartFactory.createLineChart(
				"水果产量图", // 标题
				"水果", 		// 目录轴(水平)
				"产量", 		// 数值轴(垂直)
				dataset, 	// 数据集
				PlotOrientation.VERTICAL,	// 图表方向(水平/垂直)
				true, 		// 是否显示图例(对于简单的柱状图是必须的)
				false, 		// 是否生成工具
				false 		// 是否生成 url 链接
		);

		FileOutputStream fos_jpg = null;
		try {
			fos_jpg = new FileOutputStream("./fruit4.jpg");		// 图片的输出目录
			ChartUtilities.writeChartAsJPEG(fos_jpg, 100, chart, 800, 600, null);
		} finally {
			try {
				fos_jpg.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	private static CategoryDataset getDataSet2() {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();
		dataset.addValue(100, "北京", "苹果");
		dataset.addValue(600, "北京", "梨子");
		dataset.addValue(700, "北京", "葡萄");
		dataset.addValue(300, "北京", "香蕉");
		dataset.addValue(200, "北京", "荔枝");
		dataset.addValue(100, "广州", "苹果");
		dataset.addValue(400, "广州", "梨子");
		dataset.addValue(600, "广州", "葡萄");
		dataset.addValue(500, "广州", "香蕉");
		dataset.addValue(200, "广州", "荔枝");
		dataset.addValue(100, "上海", "苹果");
		dataset.addValue(300, "上海", "梨子");
		dataset.addValue(900, "上海", "葡萄");
		dataset.addValue(400, "上海", "香蕉");
		dataset.addValue(200, "上海", "荔枝");
		return dataset;
	}
}


效果图:


-----------------------------------------------------------------


JFreeChart——Pie饼图

import java.io.*;

import org.jfree.data.*;
import org.jfree.chart.*;

public class pieChart {
	
	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("./fruit3_pie.jpg");
			ChartUtilities.writeChartAsJPEG(fos_jpg, 100, chart, 800, 600, null);
		} finally {
			try {
				fos_jpg.close();
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	private static DefaultPieDataset getDataSet() {
		DefaultPieDataset dataset = new DefaultPieDataset();
		dataset.setValue("苹果", 100);
		dataset.setValue("梨子", 200);
		dataset.setValue("葡萄", 300);
		dataset.setValue("香蕉", 400);
		dataset.setValue("荔枝", 500);
		return dataset;
	}
}


效果图:


-----------------------------------------------------------------


推荐参考:


JFreeChart示例


JFreeChart通用示例


Server Tomcat v6.0 Server at localhost failed to start