在Ruby on Rails Web应用程序中生成图表的首选方法是什么?

我想添加一些饼图,条形图和散点图到我的Ruby on Rails Web应用程序中。 我希望他们有吸引力,易于添加,不会引入太多的开销。

你会推荐什么图表解决scheme?
它有什么缺点(需要Javascript,Flash,昂贵的等)?

如果您不想使用Flash,则Google图表是一个很好的select。 使用它自己很容易,但是对于Rails来说,使用gchartrb gem更容易。 一个例子:

GoogleChart::PieChart.new('320x200', "Things I Like To Eat", false) do |pc| pc.data "Broccoli", 30 pc.data "Pizza", 20 pc.data "PB&J", 40 pc.data "Turnips", 10 puts pc.to_url end 

如果你不需要图片,并且可以解决需要JavaScript的问题,你可以尝试一下客户端解决scheme,比如jQuery插件flot 。

我是Gruff Graphs的粉丝,但是如果你不介意依靠外部服务器的话, Google Charts也不错。

需要闪光,并不是免费的(虽然不贵): amcharts 。

我用它成功和喜欢它。 我评估了一些选项,并select了它。 然而,Google Charts目前还不像现在这样成熟。 如果我现在要重新评估,我会首先考虑。

还有Sc </s> 。 我最近看了一下代码,看起来很容易修改/扩展。 它产生SVG和(通过转换)PNG。

您是否尝试过Google Charts API ? – Web服务API实际上并不简单。 它可以自由使用,操作简单,图表看起来不会过于粗糙。

打开Flash Chart II是一个免费的选项,提供非常好的输出。 它,如你所料,需要Flash。

Fusion Charts甚至更好,但是是499美元。 在研究这个时候,我find了一个可以满足你需求的免费版本 。

我第二次投票给flot 。 最新的版本可以让你做一些animation和行动,我以前认为只能通过Flash。 文件是太棒了。 手工编写起来很简单,但对于简单的情况,使用名为flotilla的Rails插件可以更容易。 您应该查看示例页面以更好地了解它的function。 缩放和hoverfunction尤其令人印象深刻。

新的Google可视化工具似乎可以生成更多样化的图表,比Google图表更好看,更具交互性。

http://code.google.com/apis/visualization/

Morris.js很好,开源。 我想select它比较高。 有一个来自Railscasts的新的伟大的video教程

我刚刚发现ZiYa产生了一些非常性感的图表,并且是Rails特有的。

缺点是它使用Flash,如果您不希望网站链接到XML / SWF页面,则每个网站的费用为50美元。

[我还没有决定,但是要把它扔出去,以防人们想投票]

我已经在Java Web应用程序中广泛使用了Fusion Charts,但是它应该像Rails一样工作,因为您只是通过HTML或JavaScriptembeddedFlash并将其传递给XML数据。 这是一个灵活的包,他们的支持一直非常敏感。

你应该看看Dmitry Baranovskiy的 Javascript库叫做Raphaël 。

谷歌图表是非常好的,但它不是一个唯一的解决scheme。 您可以简单地使用您select的编程语言来dynamic生成包含数据的url,而Google则会使用图表返回一个漂亮的图像。

http://code.google.com/apis/chart/

在过去,我决定推出我自己的(使用RVG / RMagick),主要是因为Gruff没有我想要的一切。 缺点是find并消除graphics代码中的所有错误是一个痛苦。 现在,Gruff是我的select,因为它在定制和灵活性方面已经走在前列。

标准的粗糙模板/颜色select虽然吸引人,所以你需要把你的手弄脏最好的结果。

关于amcharts ,有一个“免费”的版本,只有很less的限制,可以生成包括“由amCharts.com提供图表”的Flash图表。

还有一个不错的插件,可以提供一些辅助方法,方便地将图表添加到视图中。 请注意, amCharts.com参考文档仍然是根据您的要求定制图表的必备条件。

GoogleCharts和Gruff图表很棒,但是有时候它们缺less一些我需要进行更科学绘图的function。 gnuplot有一个gem可能对这些情况有所帮助。

http://rgplot.rubyforge.org/

我已经开始使用protovis来生成与JavaScript的SVG图表。 我在rails的基本方法是有一个控制器,返回的数据被绘制为JSON,并舀了一些JavaScript和原型。

唯一的缺点是,全面的IE支持(因为它是基于SVG)目前不能直接使用…但是,目前的补丁是一个公平的方式来提供IE支持,详细信息可以在这里find。

我个人比较喜欢基于JavaScript的图表。 如果没关系,还可以查看高图表 。 Rails插件也是可用的。

似乎,gchartrbgem已经不再维护了。 作者指出这些gem:

  • googlecharts
  • gchart (似乎也被遗弃了)

我们通过脱壳到gnuplot来生成图表作为服务器端的PNG。 这是一个古老的学校和图表不是互动的,但它的工作原理和caching。

(我们这样做的另一个原因是我们可以在报告的PDF版本中使用完全相同的图表)。

这不是专门的RoR,但是,它是非常漂亮的端口的Gruff javascript: http : //bluff.jcoglan.com/

ChartDirector 。 丑陋的API,但好的,服务器端的图像结果。 自包含的二进制。

FWIW,我不喜欢使用谷歌图表,当适合和完成是重要的。 我发现特别是大小的variables是不可预测的 – 图表做它自己的事情。

我还没有玩过Gruff / Bluff /等,但对于更高规格的项目,我不会使用Google Charts。

如果你想要性感的图表,很容易生成,并且可以启用Flash,那么你一定要看看maani.us的xml / swf图表 。

在它后面的一些XML生成器,你准备好了。

FusionCharts是一个非常好的图表产品。 与RoR合作良好。 他们的支持和论坛是好的。 该产品的免费版本有限的图表和function,但没有水印。

我刚开始使用googlecharts进行我的rails 3项目。 这是很好,干净,似乎是唯一的谷歌可视化api的gem是活着的。 其他人不活跃,主要使用旧的谷歌图表api(2007 – 2008年发布的地方)。

https://github.com/mattetti/googlecharts

D3已经成为我的首选方式添加伟大的图表networking应用程序。 你必须做一些其他的框架,但外观和控制胜过那个。

我主要使用SVG,这意味着没有IE8,但这不是一个问题。

HighChart – 用纯JavaScript编写的图表库

gem像highchart-rails , lazy-high-chart使得与rails的集成更容易

gem 'chart'可以很容易地将ChartJS和NVD3图表添加到导轨。