`
Jclick
  • 浏览: 187559 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

关于统计图的生成

阅读更多
       近段时间,一直在研究统计图,被搞的焦头烂额,就剩一点一直无法突破,看了API文档也没找到解决方法,可能是本人愚钝。特列出以下跟大家讨论以下,请勿拍砖。。。
       1.当之无愧,首选JFreechart,网上评价也都很好,于是也就试了试,首先说明,我只用到了柱状图,开始一切都很顺利,生成报表图片。但是遇到了一问题就是看报表是要跳转页面,不过这个也顺利解决,方法就是在后台生成完统计图片后,保存一个URL,然后把URL存到一个list里边,通过json传递到前台,然后用js进行处理,可以无刷新的显示出来统计图,贴下代码共勉:
下边为action的代码,主要map为service里处理过的数据,String是标题,CategoryDataset是JFreeChart需要的数据格式,imageList用于存放url,ChartUtil.createBarChart(map.get(title), "员工姓名", "任务数量", title,path)用于生成图片保存在服务器端

	/**
	 * 
	 * <p>方法描述:任务统计报表</p>
	 * @return
	 */
	public String showReport() {
		imgList = new ArrayList<String>();
		try {
			Map<String, CategoryDataset> map = this.iTaskService.getDataset(
					usersId, info.getBeginDate(), info.getEndDate());
			for (String title : map.keySet()) {
				String path = UUID.randomUUID().toString() + ".png";
				ChartUtil.createBarChart(map.get(title), "员工姓名", "任务数量", title,
						path);
				path = "report/".concat(path);
				imgList.add(path);
			}
			log.info("任务报表生成成功");
		} catch (Exception e) {
			log.error("任务报表生成失败", e);
			e.printStackTrace();
		}
		return SUCCESS;
	}

然后前台就很简单了。通过对imageList进行遍历显示在DIV中,不予赘述。
      2.利用google chart api来生成统计图,优点:漂亮直观,方法简单;缺点:需要连接到google,速度受到很大限制,特别是现在google不稳定,这也是导致本人最后不用的原因,如下图:





上述图片实现也很简单,而且支持N种图表,功能很强大,代码放附件里了。。也可以访问网址:http://code.google.com/intl/zh-CN/apis/chart/interactive/docs/gallery/columnchart.html
      3.第三种就是flash了,图表也已经放在了附件里,是在博客园看到的,望博主看到勿怪。由于本人不会flash,所以也只能看看了。。
   
     下面谈论下我遇到的问题,希望有知道的朋友帮忙指点迷津下,折磨很久了,但是一直没法解决。。看下图,是我用jfreechart生成的统计图,但是却有一个缺点就是,当数值很少是,会呈现出下种结果。。。


希望大虾们指导指导。。。。

  • 大小: 3.8 KB
  • 大小: 6.6 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics