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


76

我想在Ruby on Rails Web应用程序中添加一些饼图,条形图和散点图。我希望它们具有吸引力,易于添加且不会带来太多开销。

您会推荐哪种制图解决方案?
它的缺点是什么(需要Javascript,Flash,昂贵等)?


最后,我去了谷歌图表实施,但现在我切换到谷歌可视化。
RichH

我现在在2013
RichH

highcharts是一个很棒的图书馆
hsgubert 2015年

Answers:


59

如果您不想使用Flash,则Google Charts是一个绝佳的选择。单独使用它很容易,但是对于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

我决定从Google Charts和gchartrb开始。简单,快速-必要时我可以移至更复杂的地方。
RichH

1
从那以后,我发现Google Charts有点痛苦,因为饼形标签经常会溢出图表的两边,而且它们也不漂亮。我将转到Google Visualizations,到目前为止看起来更好,但是基于Javascript。
RichH

4
您将此代码放在哪里?在控制器上?您如何显示它?
B

15

如果您不需要图像,并且可以使用JavaScript,则可以尝试使用jQuery插件flot之类的客户端解决方案。



8

需要闪存,并且不是免费的(虽然便宜):amcharts

我已经成功使用了它,并且喜欢它。我前一段时间评估了许多选项,然后选择了它。但是,当时的Google Charts还不如现在看起来成熟。如果我现在要重新评估,我会首先考虑。





6

我对弗洛特投了第二票。最新版本允许您执行一些以前认为只能通过Flash进行的动画和动作。该文档太棒了。手工编写起来很简单,但是在简单的情况下,使用名为flotilla的Rails插件会变得更加容易。您应该查看示例页面,以更好地了解其功能。缩放和悬停功能特别令人印象深刻。




3

我刚刚发现ZiYa制作了一些非常性感的图表,并且特定于Rails。

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

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


Gruff Graphs不需要Flash,是特定于Rails的,并且是免费的。
lordscarlet

此外,ZiYa似乎只是在为您提供简单的方法来实现maani.us/xml_charts/index.php?menu=Gallery
lordscarlet

您是对的,Lordscarlet ZiYa只是XML / SWF图表的RoR包装器,但这可能非常有用。该许可证适用于XML / SWF-您可以免费获得ZiYa。
RichH

好点子。我使用过XML / SWF,并且非常喜欢该功能。优点涉及闪存功能,但缺点是它具有闪存功能。图像更具可移植性。
lordscarlet

3

我已经在Java Web应用程序中广泛使用了Fusion Charts,但是由于您只是通过HTML或JavaScript嵌入Flash并传递XML数据,因此它在Rails中的工作方式也应相同。这是一个精巧的软件包,他们的支持一直非常敏感。




2

在过去,我决定自己动手(使用RVG / RMagick),主要是因为Gruff没有我想要的一切。缺点是发现并消除图形代码中的所有错误是很痛苦的。如今,Gruff是我的选择,因为它在定制和灵活性方面确实取得了进步。

尽管标准的Gruff模板/颜色选择很烂,所以您需要弄脏双手以获得最佳效果。


2

关于amcharts,有一个“免费”版本,有很少的限制,可以生成Flash图表,其中包括提到的“ chart by amCharts.com”。

还有一个不错的插件ambling,它为您提供了一些帮助程序方法,可以轻松地将图表添加到视图中。请注意,仍然需要amCharts.com参考文档来根据您的要求定制图表。



2

我已经开始使用protovis用javascript生成SVG图表。我在Rails中的基本方法是拥有一个控制器,该控制器返回要绘制为JSON的图表数据,并使用一些javascript和protovis捕获它。

唯一的缺点是,目前无法直接使用完整的IE支持(因为它基于SVG)...但是,当前的补丁程序可以很好地提供IE支持,有关详细信息,请参见此处




0

我们通过脱壳到gnuplot来将图表生成为PNG服务器端。这有点老派了,图表不是交互式的,但是可以工作并且可以缓存。

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




0

FWIW,当适合度和结束时间很重要时,我不喜欢使用Google图表。我发现,用于调整大小的变量尤其不可预测-图表会做自己的事情。

我还没有玩过Gruff / Bluff / etc。,但是对于一个知名度更高的项目,我不会使用Google Charts。



0

FusionCharts是一款非常出色的图表产品。与RoR配合良好。他们的支持和论坛都很好。该产品的免费版本具有有限数量的图表和功能,但没有水印。



0

D3已成为我向Web应用程序添加美观图表的首选方式。您必须做一些其他框架的杂项工作,但是外观和控件要胜过这些。

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



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.