您的位置:首页 > 其它

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

2014-06-07 14:12 465 查看
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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: