我想在我的 Ruby on Rails Web 应用程序中添加一些饼图、条形图和散点图。我希望它们具有吸引力,易于添加并且不会引入太多开销。
您会推荐什么图表解决方案?
它有什么缺点(需要 Javascript、Flash、昂贵等)?
我想在我的 Ruby on Rails Web 应用程序中添加一些饼图、条形图和散点图。我希望它们具有吸引力,易于添加并且不会引入太多开销。
您会推荐什么图表解决方案?
它有什么缺点(需要 Javascript、Flash、昂贵等)?
如果您不想使用 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
如果您不需要图像,并且可以决定需要 JavaScript,则可以尝试使用 jQuery 插件flot之类的客户端解决方案。
我是Gruff Graphs的粉丝,但如果您不介意依赖外部服务器, Google Charts也不错。
它需要闪存并且不是免费的(尽管价格不贵):amcharts。
我已经成功使用它并且喜欢它。不久前我评估了许多选项并选择了它。然而,当时的谷歌图表并不像现在看起来那么成熟。如果我现在要重新评估,我会首先考虑这一点。
还有邋遢。我最近看了一下代码,它似乎很容易修改/扩展。它产生svg和(通过转换)png。
你试过谷歌图表 API吗?- Web 服务 API 并没有真正简单得多。它可以免费使用,实现简单,而且图表看起来也不会太粗制滥造。
Open Flash Chart II是一个免费选项,可以提供非常好的输出。正如您所料,它确实需要 Flash。
Fusion Charts更好,但价格为 499 美元。在对此进行研究时,我发现了一个可以满足您需求的精简版免费版本。
新的 Google Visualization 似乎可以生成比 Google Graphs 类型更多、外观更好、交互性更强的图表。
Morris.js很好而且是开源的。与highcharts相比,我想选择它。Railscasts有一个新的很棒的视频教程
我刚刚发现ZiYa制作了一些非常性感的图表,并且是特定于 Rails 的。
缺点是它使用 Flash,如果您不希望站点链接到 XML/SWF 页面,则每个站点的成本为 50 美元。
[我还没有决定,但想把它扔在那里以防人们想投票]
我在 Java Web 应用程序中广泛使用了 Fusion Charts,但它的工作方式应该与 Rails 相同,因为您只是通过 HTML 或 JavaScript 嵌入 Flash 并传递 XML 数据。这是一个漂亮的软件包,他们的支持一直非常敏感。
您应该看看Dmitry Baranovskiy 的名为Raphaël的Javascript 库。
谷歌图表非常好,但它不是唯一的解决方案。您只需使用您选择的编程语言来动态生成包含数据的 url,然后 google 就会用您的图表返回一个漂亮的图像。
在过去,我决定自己动手(使用 RVG/RMagick),主要是因为 Gruff 没有我想要的一切。缺点是查找和消除图形代码中的所有错误是一件痛苦的事情。这些天来,Gruff 是我的选择,因为它在定制和灵活性方面确实取得了进步。
不过,标准的 Gruff 模板/颜色选择很糟糕,因此您需要亲自动手才能获得最佳效果。
关于amcharts,有一个“免费”版本,其生成 Flash 图表的限制很少,包括“amCharts.com 的图表”提及。
还有一个不错的插件ambling,它为您提供了一些帮助方法来轻松地将图表添加到您的视图中。请注意amCharts.com 参考文档仍然是根据您的要求定制图表的必要条件。
GoogleCharts 和 Gruff 图表很棒,但有时它们缺少一些我需要进行更科学绘图的功能。gnuplot 有一个 gem,它可能对其中一些情况有所帮助。
我个人更喜欢基于 JavaScript 的图表而不是 Flash。如果没关系,还请查看High Charts。Rails 插件也可用。
我们通过使用 gnuplot 将图表生成为 PNG 服务器端来做到这一点。它有点老派,图表不是交互式的,但它可以工作并且可以缓存。
(我们这样做的另一个原因是我们可以在报告的 PDF 版本中放置完全相同的图表)。
然而,这并不是专门的 RoR,它是 Gruff 到 javascript 的非常巧妙的端口:http: //bluff.jcoglan.com/
图表导演。丑陋的 API,但很好的服务器端图像结果。自包含二进制文件。
FWIW,当适合和完成很重要时,我不喜欢使用 Google Charts。我发现调整大小的变量尤其是不可预测的——图表有它自己的作用。
我还没有玩过 Gruff/Bluff/etc.,但是对于一个知名度更高的项目,我不会使用 Google Charts。
如果您想要非常性感、易于生成并且可以启用 Flash 的图表,那么您绝对应该看看maani.us xml/swf 图表。
它背后有一些 XML 构建器,您就可以开始了。
FusionCharts是一款非常优秀的图表产品。与 RoR 配合得很好。他们的支持和论坛很好。该产品的免费版本具有数量有限的图表和功能,但没有水印。
我刚开始在我的 rails 3 项目中使用 googlecharts。它既漂亮又干净,似乎是唯一一个基于谷歌可视化 api 的 gem。其他人不活跃,主要使用旧的谷歌图表 api(在 2007-2008 年的某个地方发布)。
D3已成为我向 Web 应用程序添加漂亮图表的首选方式。您必须做一些其他框架的工作,但外观和控制胜过这一点。
我主要使用 SVG,这意味着没有 IE8,但这已不再是一个问题。
HighChart - 用纯 JavaScript 编写的图表库
像highchart-rails,lazy-high-chart这样的宝石使与 rails 的集成更容易
gem 'chart'
可以轻松地将 ChartJS 和 NVD3 图表添加到 rails。