有学生要在毕设作品中加个饼图,根据数据库中查询出的数据计算百分比,显示在图上,参考了javaeye中的帖子,整理了一个小例子,功能其实还不完善,留作备忘吧。
需要的专门jar包在附件中,是利用JFreeChart来做的,jsp部分的代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="GB18030"%> <%@ page import="org.jfree.chart.*" %> <%@ page import="org.jfree.data.general.DefaultPieDataset" %> <%@ page import="java.io.*" %> <%@ page import="java.awt.Font" %> <%@ page import="org.jfree.chart.plot.PiePlot" %> <html> <head> <title>生成饼图</title> </head> <body> 饼图 <br> <img src="c:\\savebook.jpg"> <% equest.setCharacterEncoding("gbk"); DefaultPieDataset dataset = new DefaultPieDataset(); //此部分数据为测试数据,从数据库中查询类似 dataset.setValue("Spring2.0教材", 47000); dataset.setValue("J2EE开发大全", 38000); dataset.setValue("Ajax", 31000); dataset.setValue("Javascript参考手册", 49000); dataset.setValue("Ajax in Action", 25000); //生成一个饼图图表对象,参数分别为:饼图标题、数据、是否显示图例、是否显示工具提示、是否生成URL JFreeChart chart = ChartFactory.createPieChart("book销售信息", dataset, true, true, true); //设置饼图标题可以正常显示中文 chart.getTitle().setFont(new Font("宋体", Font.BOLD,12)); chart.getLegend().setItemFont(new Font("宋体", Font.BOLD,12)); //设置饼图数据中文显示 PiePlot plot = (PiePlot) chart.getPlot(); plot.setLabelFont(new Font("宋体", Font.BOLD,12)); //创建一个名为savebook.jpg的文件 ,将图片保存在客户端 File file = new File("c:\\savebook.jpg"); //对savebook.jpg进行数据的写入及保存 ChartUtilities.saveChartAsJPEG(file, chart, 400, 400); %> </body> </html>
生成的效果图,如附件图。