由于6年写的一个基于jfreechart出图的组件,于是最近被挖地三尺的揪出来对目前系统中的报表图形展现进行优化。。。
偶先上网研究了一下最近的出图的各方面技术,找了10多个网上有一定使用率的图形控件,有些过于重量级,比如ireport的图形,就直接排除了,剩余几个逐一进行了验证,都有一定可操作性,偶列了个对比的excel如下:
序 | 控件名 | 说明 | 优势 | 劣势 | 类型 | 版本 | 运行端 | 依赖 |
1 | Google Chart API | Google 图表 API 使您可以动态生成图表 | google提供服务,前后台都无压力 | 相对简单,客户端必须能访问互谅网 | java | 不详 | client | |
2 | jqchart | jQchart 是一个jQuery的插件,用来绘制图表的。支持各种形状的图表。 | 纯javascript控件 | 功能相对简单 | javascript | 0.03 | client | jquery |
3 | flot | flot 是一个jQuery的插件,用来绘制图表的。支持各种形状的图表。 | 纯javascript控件,功能完善 可动态调整 | 客户端相对压力大 不能导出 无饼图 | javascript | 0.5 | client | jquery |
4 | fusioncharts | 通过flash展现报表图形 超级强大,效果很好 但是为收费软件,有功能限制的免费版 | 功能强大,效果很花哨 | 付费软件 | flash | 3 | 不限 | flash |
5 | jfreechart | 成熟的java出图api,上手容易,深入难 | 功能超强大 已经封装 | 不够动感 人老珠黄被嫌弃 | java | 1.0.12 | server | 无 |
6 | emprise | 纯javascript绘制图表,接口比较复杂 | 纯javascript控件 | 不是很好用 | javascript | 2.0.1 | client | 无 |
7 | js charts | 纯javascript绘制图表 | 纯javascript控件 | 功能不完善 | javascript | 1 | client | 无 |
8 | OFCGWT | 基于Open Flash Chart提供绘图,依赖google的gwt | 功能强大,效果很花哨,完全免费 | 依赖于gwt,至少java5.0 gwt太重了,而且无unix版本 | java | 2.01beta | server | Open Flash Chart gwt |
9 | Connext Graphs | 基于Open Flash Chart提供绘图,依赖strusts2.0 | 依赖struts2.0,目前大多数系统为struts1.2.7 | java | 0.4 | server | Open Flash Chart struts | |
# | Open Flash Chart | 纯flash图表控件,免费且完全开源,使用json作为数据来源 | api不够完善 对java支持不好 | flash | 2 | 不限 | 无 |
应该说jfreechart在java出图方面最强大的,几乎覆盖了所有的图形类型,其扩展也算方便(对于图形的特殊渲染或者事件响应通过重载其工厂方法都是可以解决)。只是其接口定义有些问题,使用上略有不便(个人体会^_^),6年前的封装就是基于此进行,封装后只需输入数据数组和纵坐标数组、横座标数组并指定出图类型即可:
该组件的使用还是比较简单的,因此在公司内部流传还是比较广泛的。
本次图形展现优化,偶首先针对这些年使用过程中反馈的建议,对图形的参数进行扩展和重定义,对于图形的渲染也增加了更多的类型.
为了方便兄弟们使用,偶针对该组件制作了详细的操作手册
我截了部分操作手册的图如下:
基于nlchart.jar的jfreechart组件的操作手册详见:
http://download.csdn.net/source/1542140
基于nlchart.jar的fusionhart组件的操作手册详见:
http://download.csdn.net/source/1542236
nlchart.jar下载地址: