關於統計圖的生成

近段時間,一直在研究統計圖,被搞的焦頭爛額,就剩一點一直無法突破,看了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]
希望大蝦們指導指導。。。。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章