JFreeChart制作简单的饼状图

本文详细介绍了如何使用JFreeChart框架绘制饼状图,包括下载安装、配置web.xml、编写Java类以及在JSP页面展示图表的具体步骤。

最近一直有同学问我怎么用JFreeChart做统计报表,所以在这里写一下,先讲一下饼状图的使用,之后再讲树状图和折线图吧,如果问题请留言

<!--[if !supportLists]-->一.<!--[endif]-->导包

下载jfreechart框架包,百度上可以查到,开源的。这个是csdn上的

http://download.youkuaiyun.com/source/3108268

<!--[if !supportLists]-->二.<!--[endif]-->配置web.xml

加上以下信息:

<servlet>

<servlet-name>DisplayChart</servlet-name> <servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class></servlet>

<servlet-mapping>

<servlet-name>DisplayChart</servlet-name>

<url-pattern>/servlet/DisplayChart</url-pattern>

</servlet-mapping>

<!--[if !supportLists]-->三.<!--[endif]-->编写类

代码如下:

package com.qm;

import java.awt.Color;

import java.awt.Font;

import java.io.PrintWriter;

import javax.servlet.http.HttpSession;

import org.jfree.chart.ChartFactory;

import org.jfree.chart.ChartRenderingInfo;

import org.jfree.chart.ChartUtilities;

import org.jfree.chart.JFreeChart;

import org.jfree.chart.entity.StandardEntityCollection;

import org.jfree.chart.plot.PiePlot;

import org.jfree.chart.servlet.ServletUtilities;

import org.jfree.data.general.DefaultPieDataset;

import org.jfree.data.general.PieDataset;

public class AA {

//在此方法内填入数据,key-value.value为数字。

private static PieDataset createDataset()

{

DefaultPieDataset dpd=new DefaultPieDataset();

dpd.setValue("A", 1);

dpd.setValue("B", 2);

dpd.setValue("C", 3);

dpd.setValue("d", 4);

dpd.setValue("E", 5);

return dpd;

}

private static JFreeChart createChart(PieDataset dpd)

{

JFreeChart jfc=ChartFactory.createPieChart3D("",dpd,true,true,false); //这个有3D效果

//JFreeChart jfc=ChartFactory.createPieChart("",dpd,true,true,false); //这个没有有3D效果

jfc.setBackgroundPaint(Color.white); //背景色

jfc.getTitle().setFont(new Font("宋体",Font.BOLD,20));//设置标题字体

PiePlot plot= (PiePlot) jfc.getPlot();//获取图表区域对象

plot.setLabelFont(new Font("宋体",Font.BOLD,10));

jfc.getLegend().setItemFont(new Font("宋体",Font.BOLD,10));

return jfc;

}

public static String generateBarChart(HttpSession session, PrintWriter pw)

{

String filename=null;

PieDataset cd=createDataset();

JFreeChart chart=createChart(cd);

ChartRenderingInfo info=new ChartRenderingInfo(new StandardEntityCollection());

try {

filename=ServletUtilities.saveChartAsPNG(chart, 800, 400, info,session);//设置生成的图片的大小

ChartUtilities.writeImageMap(pw, filename, info, false);

} catch (Exception e) {

e.printStackTrace();

}

pw.flush();

return filename;

}

}

<!--[if !supportLists]-->四. <!--[endif]-->在jsp中使用图表

代码如下:

<%@page import="com.qm.AA"%>

<%@page import="java.io.PrintWriter"%>

<%

String filename=AA.generateBarChart(request.getSession(),new PrintWriter(out));

String graphURl = request.getContextPath() + "/servlet/DisplayChart?filename=" + filename;

<img alt="分析图" src="<%=graphURl %>" width="800" height="400">

%>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值