锁定老帖子 主题:关于统计图的生成
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-15
最后修改:2011-07-15
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生成的统计图,但是却有一个缺点就是,当数值很少是,会呈现出下种结果。。。 ![]() 希望大虾们指导指导。。。。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-07-15
肿么没有人理楼主呢。。。。。。
好歹也要支持一下楼主的分享精神啊。。。。 |
|
返回顶楼 | |
发表时间:2011-07-18
为什么不用FusionCharts?
|
|
返回顶楼 | |
发表时间:2011-07-18
lijinghao0310 写道 为什么不用FusionCharts?
好使么?能精准控制每个部分么? |
|
返回顶楼 | |
发表时间:2011-07-18
Jclick 写道 lijinghao0310 写道 为什么不用FusionCharts?
好使么?能精准控制每个部分么? 用过FusionCharts,但是对它的效率很不满意。我使用的xml作为数据格式,当数据量比较大的时候,比如几条线性图n多时间点的时候,FusionCharts 的flash打开就会奇慢无比,不知道楼下有没有高手对FusionCharts的效率有什么好的优化方法? |
|
返回顶楼 | |
发表时间:2011-07-18
JFreechart挺好用的,就是显示出来的图片有点死板,也不好看,用于后台的统计挺好的,不适合前台展示。
|
|
返回顶楼 | |
发表时间:2011-07-18
簡單從泚銷夨 写道 JFreechart挺好用的,就是显示出来的图片有点死板,也不好看,用于后台的统计挺好的,不适合前台展示。
话说JFreeChart在数据量多的时候还是蛮好使的,但是在没数据的时候显示的很难看,不知道怎么解决。。研究研究FusionCharts去。。看着挺漂亮的,Flash搞的。。 |
|
返回顶楼 | |
发表时间:2011-07-18
Jclick 写道 话说JFreeChart在数据量多的时候还是蛮好使的,但是在没数据的时候显示的很难看,不知道怎么解决。。研究研究FusionCharts去。。看着挺漂亮的,Flash搞的。。 上次用的时候没好好研究,只是用了下,没数据的时候确实显示的很难看,好像显示NULL,不过可以判断一下,没数据那就没必要显示出来,FusionCharts 同事用过,确实比JFreeChart酷,可严重影响网站的性能,加载很慢的,,那位大侠可以推荐下有什么好的工具。 |
|
返回顶楼 | |
发表时间:2011-07-18
楼主搜搜Highcharts吧.我对比了好多最终选择了这款.开源并且demo非常齐全,其他的报表要么文档少(FusionCharts ),要么就是demo做得很烂(open flash chart).
|
|
返回顶楼 | |
发表时间:2011-07-18
一般来说有三类:
1. Server生成图片。 2. Client用Flash生成图片。 3. Client用Js生成图片(Canvas)。 在Server生成,会严重消耗性能。 在Client中,对于大数据量的可能会比较费时。 折中的是,在Server对数据进行预处理,在Client绘制。 |
|
返回顶楼 | |