关于统计图的生成

近段时间,一直在研究统计图,被搞的焦头烂额,就剩一点一直无法突破,看了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不稳定,这也是导致本人最后不用的原因,如下图:


[img]http://dl.iteye.com/upload/attachment/517701/7324094d-d768-3da1-ba9b-8b24d401c072.bmp[/img]


上述图片实现也很简单,而且支持N种图表,功能很强大,代码放附件里了。。也可以访问网址:[url]http://code.google.com/intl/zh-CN/apis/chart/interactive/docs/gallery/columnchart.html[/url]
3.第三种就是flash了,图表也已经放在了附件里,是在博客园看到的,望博主看到勿怪。由于本人不会flash,所以也只能看看了。。

下面谈论下我遇到的问题,希望有知道的朋友帮忙指点迷津下,折磨很久了,但是一直没法解决。。看下图,是我用jfreechart生成的统计图,但是却有一个缺点就是,当数值很少是,会呈现出下种结果。。。

[img]http://dl.iteye.com/upload/attachment/517713/79945796-7571-3356-b6c8-8cb6fd70863e.png[/img]
希望大虾们指导指导。。。。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值