Rails 图表解决方案汇总
by Yuanyi ZHANG
at 2010-08-11 20:03:21
original http://www.letrails.cn/archives/rails-chart-solutions/
最近需要给抢座增加图表功能,于是对Rails的图表方案做了些调查,整理成这篇贴,希望对有同样需求的人有所帮助。
Google Chart的优点是接口简单,容易上手,但是缺点也很明显,需要依赖Google的服务,在有些地方加载可能会存在速度问题,并且有被GFW的风险。
Google Chart的Rails插件很多,个人比较喜欢mattetti的googlecharts:
- googlecharts: http://github.com/mattetti/googlecharts
- gchartrb:http://code.google.com/p/gchartrb
- google-charts-on-rails:http://code.google.com/p/google-charts-on-rails/
- gc4r:http://code.google.com/p/gc4r/
Google Visualization是Google Chart的升级版,Rails插件:http://github.com/mwarnock/rails-google-visualization-plugin
Gruff是基于RMagick的Ruby绘图工具,功能强大,可扩展性和可定制性都非常好,不过由于Gruff需要在服务端实时生成图片,因此不适合实时展示数据。
Gruff还有一个JS封装bluff:http://bluff.jcoglan.com/
Flot是一个jQuery插件,可以基于JS生成实时图表,如果你使用jQuery,那么Flot是个不错的选择。Flot有一个很好用的Rails插件插件Flotilla: http://github.com/joshuamiller/flotilla
GNUPlot最初是为学术目的使用的数据可视化工具,但是现在也支持生成非交互式的2d和3d图形,如果你需要生成非常复杂的图形,那么可以试试gnuplot,GNUPlot有一个叫rgplot的rubygem可以使用:http://rgplot.rubyforge.org
Ziya是一个Rails图表插件,可以生成非常漂亮和复杂的Flash图表,如果你不介意Flash,那么Ziya是个不错的选择。
Scruffy是一个Rubygem,它的目标是帮你生成高质量的SVG和PNG图片,同Gruff一样,是一个服务端解决方案,不过Scruffy目前似乎已经停止开发了,首页的图片在Firefox和Chrome下均无法显示。
Highcharts
感谢dxiao同学留言,Highchars是一个纯JS的图表库,但是实现的效果却和Flash不相上下,相当绚丽,兼容性也很不错,并且有一个Rails的插件可以用,值得一试。
Raphaeljs
感谢Quake推荐,Raphael也是一个非常不错的JS绘图控件,他的核心库是raphaeljs,一个画图工具,详情可以看官方网站 : http://g.raphaeljs.com/
Flash
除了上面介绍的Ziya,Flash图表解决方案还有很多,下面列举几个对Rails支持比较好的:
- Open Flash Chart II:http://pullmonkey.com/projects/open_flash_chart2/
- Fusion Charts Free:http://www.fusioncharts.com/free/
- maani.us xml/swf charts:http://www.maani.us/xml_charts/
- amcharts: http://www.amcharts.com/,archarts有一个很好用的Rails插件:ambling