您的位置:首页 > Web前端 > JavaScript

JFreeChart在JSP中的应用实例

2012-02-01 11:04 447 查看
一、饼图实例

jsp页面:index.jsp




<%

@ page contentType="text/html;charset=GBK"%>




<%

@ page import="org.jfree.data.general.DefaultPieDataset"%>




<%

@ page import="org.jfree.chart.*"%>




<%

@ page import="org.jfree.chart.plot.*"%>




<%

@ page import="org.jfree.chart.servlet.ServletUtilities"%>




<%

@ page import="org.jfree.chart.labels.StandardPieToolTipGenerator"%>




<%

@ page import="org.jfree.chart.urls.StandardPieURLGenerator"%>




<%

@ page import="org.jfree.chart.entity.StandardEntityCollection"%>




<%

@ page import="java.io.*"%>




<HTML>


<HEAD>


<META http-equiv=Content-Type content="text/html; charset=GBK">


<META NAME="Author" CONTENT="Alpha">


<TITLE>程序员学历情况调查表-By Alpha</TITLE>


</HEAD>


<BODY>




<%



DefaultPieDataset data = new DefaultPieDataset();


//数据初始化


data.setValue("高中以下",380);


data.setValue("高中",1620);


data.setValue("大专",6100);


data.setValue("本科",8310);


data.setValue("硕士",3520);


data.setValue("博士",180);




//HttpSession session = request.getSession();




PiePlot3D plot = new PiePlot3D(data);//生成一个3D饼图


//plot.setURLGenerator(new StandardPieURLGenerator("DegreedView.jsp"));//设定图片链接


JFreeChart chart = new JFreeChart("",JFreeChart.DEFAULT_TITLE_FONT, plot, true);


chart.setBackgroundPaint(java.awt.Color.white);//可选,设置图片背景色


chart.setTitle("程序员学历情况调查表-By Alpha");//可选,设置图片标题


plot.setToolTipGenerator(new StandardPieToolTipGenerator());


StandardEntityCollection sec = new StandardEntityCollection();


ChartRenderingInfo info = new ChartRenderingInfo(sec);


PrintWriter w = new PrintWriter(out);//输出MAP信息


//500是图片长度,300是图片高度


//String filename = ServletUtilities.saveChartAsPNG(chart,500,300,info,session);


String filename = ServletUtilities.saveChartAsJPEG(chart,500,300,info,session);


ChartUtilities.writeImageMap(w,"map0",info,false);




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


%>




<P ALIGN="CENTER">


<img src="<%= graphURL %>" width=500 height=300 border=0 usemap="#map0">


</P>


</BODY>


</HTML>



本例效果图:



二、柱图实例

jsp页面:index1.jsp

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><%
@page contentType
= "
text/html; charset=GB2312
" %>

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

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

<%
@page import
= "
org.apache.commons.logging.Log
" %>

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

<%
@page import
= "
org.apache.commons.logging.LogFactory
" %>

<%
@page import
= "
org.jfree.chart.ChartFactory
" %>

<%
@page import
= "
org.jfree.chart.ChartUtilities
" %>

<%
@page import
= "
org.jfree.chart.JFreeChart
" %>

<%
@page import
= "
org.jfree.chart.plot.PlotOrientation
" %>

<%
@page import
= "
org.jfree.data.category.CategoryDataset
" %>

<%
@page import
= "
org.jfree.data.category.DefaultCategoryDataset
" %>

<%
@page import
= "
java.awt.Color
" %>

<%
@page import
= "
org.jfree.chart.renderer.category.BarRenderer3D
" %>

<%
@page import
= "
org.jfree.chart.labels.StandardCategoryItemLabelGenerator
" %>

<%
@page import
= "
org.jfree.chart.axis.CategoryAxis
" %>

<%
@page import
= "
org.jfree.chart.plot.CategoryPlot
" %>

<%

DefaultCategoryDataset dataset
=
new DefaultCategoryDataset();

dataset.addValue(
150 ,
"
北京 "
,
" 苹果
"
);

dataset.addValue(
530 ,
"
上海 "
,
" 苹果
"
);

dataset.addValue(
160 ,
"
广州 "
,
" 苹果
"
);

dataset.addValue(
120 ,
"
北京 "
,
" 梨子
"
);

dataset.addValue(
230 ,
"
上海 "
,
" 梨子
"
);

dataset.addValue(
360 ,
"
广州 "
,
" 梨子
"
);

dataset.addValue(
600 ,
"
北京 "
,
" 葡萄
"
);

dataset.addValue(
430 ,
"
上海 "
,
" 葡萄
"
);

dataset.addValue(
560 ,
"
广州 "
,
" 葡萄
"
);

dataset.addValue(
400 ,
"
北京 "
,
" 香蕉
"
);

dataset.addValue(
530 ,
"
上海 "
,
" 香蕉
"
);

dataset.addValue(
660 ,
"
广州 "
,
" 香蕉
"
);

dataset.addValue(
500 ,
"
北京 "
,
" 荔枝
"
);

dataset.addValue(
630 ,
"
上海 "
,
" 荔枝
"
);

dataset.addValue(
430 ,
"
广州 "
,
" 荔枝
"
);

JFreeChart chart
= ChartFactory.createBarChart3D(
"
水果销量图统计-By Alpha
" ,
" 水果种类-http://www.blogjava.net/Alpha/
"
, "
销量 "
,dataset,PlotOrientation.VERTICAL,
true
, false
,
false );

chart.setBackgroundPaint(Color.WHITE);

CategoryPlot plot
= chart.getCategoryPlot();

CategoryAxis domainAxis
= plot.getDomainAxis();

//
domainAxis.setVerticalCategoryLabels(
false
);

plot.setDomainAxis(domainAxis);

BarRenderer3D renderer
=
new BarRenderer3D();

renderer.setBaseOutlinePaint(Color.BLACK);

//
设置每个地区所包含的平行柱的之间距离

renderer.setItemMargin(
0.1 );

//
显示每个柱的数值,并修改该数值的字体属性

renderer.setItemLabelGenerator(
new StandardCategoryItemLabelGenerator());

renderer.setItemLabelsVisible(
true );

plot.setRenderer(renderer);

//
设置柱的透明度

plot.setForegroundAlpha(
0 .8f);

ChartUtilities.writeChartAsJPEG(response.getOutputStream(),chart,
640 ,
400
);

%>

本例效果图:



三、服务配制

web.xml文件的配制一直困扰了我很久,之前在网上找到的配制都是有问题的,搞得生成出来的图形显示不出来,后来自己才把这个配制研究成功,网上的东西也很不可靠,找了N多配制,都是一样的,同现同样的问题,看来都是转来转去的结果 。

web.xml 文件

<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/
--><? xml version="1.0" encoding="ISO-8859-1"
?>

<! DOCTYPE web-app

PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd" >

< web-app
>

< 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
>

< welcome-file-list
>

< welcome-file
> index.jsp
</ welcome-file
>

</ welcome-file-list
>

</ web-app
>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: