JFreeChart图表工具的使用(条形图、饼状图)

JFreeCHart是一个开源半免费的工具,可以用来生成饼状图,柱状图,线型图等图片。

优点是代码简单,可以生成jpg或png图片

缺点是不能与用户交互。

import java.util.Random;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

import com.opensymphony.xwork2.ActionSupport;

public class JFreeAction extends ActionSupport {

	private JFreeChart chart;

	public JFreeChart getChart() {
		return chart;
	}

	public void setChart(JFreeChart chart) {
		this.chart = chart;
	}

	public String execute() throws Exception {
		// 先建立数据集合对象
		DefaultPieDataset dataset = new DefaultPieDataset();
		// 这里随机生成
		Random r = new Random();
		// 加入数据,类似Map的形式来加入
		dataset.setValue("Java方向", r.nextInt(100) + 50);
		dataset.setValue("C/C++方向", r.nextInt(50) + 20);
		dataset.setValue("php方向", r.nextInt(50) + 20);
		dataset.setValue("C#方向", r.nextInt(20) + 10);

		// 建立核心操作对象
		chart = ChartFactory.createRingChart("发展方向统计图", dataset, true, false,
				false);

		chart.getPlot().setForegroundAlpha(0.5f);
		return "suc";
	}

}



条形图
import java.io.File;
import java.util.Random;

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.DefaultCategoryDataset;

public class BarTest {

	public static void main(String[] args) throws Exception {
		DefaultCategoryDataset dataset = new DefaultCategoryDataset();

		Random r = new Random();
		for (int i = 1; i <= 6; i++) {
			dataset.addValue(r.nextInt(5000) + 3000, "工资收入", i + "月");
			dataset.addValue(r.nextInt(7000) + 1000, "奖金收入", i + "月");
			dataset.addValue(r.nextInt(5000), "摆摊收入", i + "月");
		}

		JFreeChart chart = ChartFactory.createAreaChart("某人半年收入统计", "月份", "金额",
				dataset, PlotOrientation.VERTICAL, true, false, false);

		chart.getPlot().setForegroundAlpha(0.5f);

		ChartUtilities
				.saveChartAsJPEG(new File("D:/bar.jpg"), chart, 1000, 600);

	}

}
饼状图
import java.util.Random;

import org.jfree.chart.ChartFactory;
import org.jfree.chart.ChartUtilities;
import org.jfree.chart.JFreeChart;
import org.jfree.data.general.DefaultPieDataset;

public class PieTest {

	public static void main(String[] args) throws Exception {
		// 先建立数据集合对象
		DefaultPieDataset dataset = new DefaultPieDataset();
		// 这里随机生成
		Random r = new Random();
		// 加入数据,类似Map的形式来加入
		dataset.setValue("Java方向", r.nextInt(100) + 50);
		dataset.setValue("C/C++方向", r.nextInt(50) + 20);
		dataset.setValue("php方向", r.nextInt(50) + 20);
		dataset.setValue("C#方向", r.nextInt(20) + 10);

		// 建立核心操作对象
		JFreeChart chart = ChartFactory.createRingChart("发展方向统计图", dataset,
				true, false, false);

		chart.getPlot().setForegroundAlpha(0.5f);

		// 导出
		ChartUtilities.saveChartAsJPEG(new File("D:/pie.jpg"), chart, 600, 600);

	}

}

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>

	<package name="root" namespace="/" extends="jfreechart-default">
		<action name="jfree" class="com.action.JFreeAction">
			<result name="suc" type="chart">
				<param name="height">600</param>
				<param name="width">600</param>
			</result>
		</action>
	</package>

</struts>    



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值