给位大哥,能不能给点JSP动态图表方面的资料?万分谢谢
小弟要在网页上根据一组数据 
 输出一副统计图 
 希望各位大哥能给点资料,最好是有注释的源代码(呵呵) 
 或者电子书籍,等等 
 我的邮箱:gx.0870@163.com 
 谢谢~
------解决方案--------------------使用JFreeChart制作图形报表 
 Bromon原创 请尊重版权     
 一、需求分析     
 我家领导认为,在是否嫁给我做老婆的问题上,应该有更加科学的决策模型。如果能够将每天的感情生活量化,且以时间为X轴,生成数据报表,就可以为她的决策提供数据支持。秉着以领导意志为导向的基本原则,开发了本软件,为家庭信息化建设提供新的思路。     
 二、系统概述     
 本系统的基本功能是,接收用户每天的输入并保存,月/季度/年度末生成数据折线图、周期环比柱状图。由于投入资金有限(不让我往外掏钱就已经很不错了),所以本软件的1.0版采用单机应用程序,使用Access数据库。如果市场推广情况良好,不排除推出大型FRP软件(Family  Resource  Project)的可能,届时将包含KRM(Kin Relation Manage,家族关系管理)、HA(House Automatization,家庭自动化)等模块,利用强大的J2EE框架,为家庭信息化建设提供完整解决方案。     
        程序生成的目标图片效果如下:                  
 三、系统要求     
 1、  开源工具包jfreechart-1.0.0-pre1.jar和它自己要使用的工具包jcommon-1.0.0-pre1.jar   
 下载地址:http://sourceforge.net/projects/jfreechart/     
 2、  女朋友一个。   
 请自行准备,暂不提供下载     
 下面主要讲述系统是如何从数据库中提取数据,然后生成图形报表的。(终于进入正题了。)     
 数据表结构:     
        curve_id                流水号                  自动增长   
        curve_owner         varchar(30)           区分是老公的数据还是老婆的数据   
        curve_cent            double                   当天分数   
        curve_year            int                         年   
        curve_month         int                         月   
        curve_day             int                        日   
        note                      text                       备注     
        用于封装每个分数的值对象如下:     
 package org.bromon.fiona.curve.dao;   
 import java.util.*;   
 public class CurveVo   
 { 
        private  int  year;   
        private  int  month;   
        private  int  day;   
     private  double  cent;   
     private  String  note;   
 private  String  owner;   
 //get/set方法 
 }   
 生成图片的关键代码如下:   
 package org.bromon.fiona.curve.util;   
 //一大堆import   
 public class DrawPic   
 {   
        /**//**   
 *根据时间查询数据,将所得到的数据封装成TimeSeriesCollection对象   
 *TimeSeriesCollection是JfreeChart中定义的类的对象   
 *本方法将被后面的draw方法调用   
 *@param int 要查询哪一年   
 *@param int 要查询哪一月   
 *@return TimeSeriesCollection   
 */   
        public TimeSeriesCollection getData(int year,int month)   
        {   
               //fiona的数据集合,其中存放的是上面定义过的CurveVo值对象   
 //这些值对象的值来自于数据库,相关代码是最常见的jdbc内容,请自行完成   
               List dataOfFiona=new ArrayList();   
               //Bromon的数据集合   
 List dataOfBromon=new ArrayList();   
 //构造要返回的对象   
 TimeSeriesCollection result=new TimeSeriesCollection();   
 //这两个对象,分别对应一条曲线,构造函数的参数,将显示在图片的下方   
 TimeSeries fiona=new TimeSeries( "fiona ");   
 TimeSeries bromon=new TimeSeries( "bromon ");   
 CurveVo cv=null;   
 //遍历Fiona的数据集,填充fiona对象   
 for(int i=0;i <dataOfFiona.size();i++)   
 {   
 cv=(CurveVo)dataOfFiona.get(i);   
 fiona.add(new TimeSeriesDataItem(new Day(cv.getDay(),cv.getMonth(),cv.getYear()), new Double(cv.getCent())));   
 }   
 result.addSeries(fiona);   
 for(int i=0;i <dataOfBromon.size();i++)   
 {   
 cv=(CurveVo)dataOfBromon.get(i);   
 bromon.add(new TimeSeriesDataItem(new Day(cv.getDay(),cv.getMonth(),cv.getYear()),new Double(cv.getCent())));   
 }   
 result.addSeries(bromon);