JavaScript图表API:Flot jQuery插件还是Google可视化?

35
我正在寻找一个图表库来在网站上显示。 我将密集使用这个库(主要是区域,线和条形图),因此我希望在开始实施之前先确定我的选择。
我最初考虑的网站图表库列表如下:
- Plotkit - Emprise JS Charts - Sparkline - Protochart - gRaphael - Bluff - YUI Charts 但是,在这个论坛上进行一些研究和在网络上调查后,我已经将候选名单缩小到以下两个库:
1. Flot jQuery plugin 2. Google Visualization 你建议我使用哪一个,并解释原因(如果您使用其中一个或两个,请告诉我您的反馈)。

关于易用性、性能和功能,它们之间应该如何比较?

谢谢

编辑:基于Flash的图表库不符合我的限制条件。

6个回答

32

经过多次尝试和研究这两个可视化库后,我将为每种解决方案列出自己的优点:

Flot 优点


  1. jQuery插件:如果您熟悉jQuery(或者您的应用程序已经与jQuery集成),使用Flot似乎很自然。
  2. 离线可视化:您可以测试或将其安装到内部网站中。Google Visu只有在您有访问谷歌网站的权限时才能正常工作!
  3. 自定义:这基本上是一个JavaScript文件,因此如果您善于JS编码,可以根据需要自定义您的图表。此外,Flot插件系统允许更好的模块化。

Google 可视化 优点


  1. 文档:太棒了!Google网站中提供了每种类型图表的示例。
  2. 易于使用:真的。比Flot更容易使用(需要以某种方式自定义div容器)。
  3. 强大:您有许多种类的图表和功能(缩放,交互等)。
  4. Java和Python API:对于构建数据表格非常有帮助(至少对我来说,我可以使用Java API)。

结论


如果您熟悉jQuery,请选择Flot。如果由于某些原因需要离线查看图表,请选择Flot。如果您想要完全控制,请选择Flot。

如果以上都不适用于您,请选择Google Visu。它易于学习和实现,文档非常完善,而且功能强大。


如果需要输出表格(带排序、条形图等),您是否也会推荐使用Flot? - eddy147
有一个 jQuery 插件适用于 Google 图表,据说它已经存在了自 2008 年以来。另一个类似的插件在这里。这是否意味着现在只有 Google 图表是唯一的选择? - ubiquibacon
你在移动环境中有这方面的经验吗? - Hampus Ahlgren
我在移动站点上都使用过flot和谷歌可视化图表,它们都运行良好。谷歌图表具有交互功能,在没有鼠标的移动设备上并不是很有用,但在桌面上它们非常好。 - vjuliano

4

虽然不在您的列表中,但我建议您看一下Highcharts http://www.highcharts.com/。 Highcharts使用SVG技术,因此比Flot更具动态性,您可以使用CSS重新设计图表,附加事件,执行动画等等... 它还兼容IE6,并且可以在服务器端工作(由于Batik) 我目前正在构建一个图表密集型应用程序,并在经过很多基准测试后选择了Highcharts。 我不后悔我的选择。


6
因为许可证是一场噩梦 :) - rickyduck

1

piwik项目使用Open Flash Chart(不在您的列表上)。

它易于使用,拥有大量可工作示例,非常用户友好。


好的,我不想在我的网站上使用Flash,只想用JavaScript。这就是为什么我没有考虑这个库的原因。 - fabien7474
@fabien7474,出于好奇,为什么不使用Flash?这是为移动设备设计的吗? - Amirshk
是的。这是其中一个原因。 - fabien7474
我一直在寻找一个好的开源图表库,用于Flash/Flex。感谢您指出这个! - vjuliano

1

我是Flot的用户,也是一个忠实的粉丝。我在Grails应用程序中使用它,并使用堆叠条形图、线性图和饼图,包括时间序列和一堆交互功能(例如使用复选框打开/关闭系列等)。

总体而言,我发现它非常好用,API也相当成熟(我看到许多其他JS图表库采用了该API,因此您甚至可以在将来灵活地转换到另一个工具包)。刚才我只是简单看了一下Google API,我认为我更喜欢Flot(尽管Google可能也有传递系列的能力,但从示例中没有看到)。

他们几周前刚推出了新版本(0.6),支持插件,我预计这将刺激更多的创新。

所以我认为这部分取决于您计划使用的其他技术。似乎可视化与GWT集成,因此如果您考虑使用GWT,则应选择Visualization。另一方面,如果您考虑使用JQuery进行AJAX,则Flot可能更自然。

当我决定使用这个时,似乎谷歌没有交互式可视化,只有谷歌图表(图片),这也是我选择Flot的原因之一。


谢谢你的回答。我正在使用与你相同的技术(Grails,jQuery)。顺便说一下,Google Visualization与Google Charts确实不同。你可以拥有更多的控制和交互性,并且它不仅限于GWT。它还有Java和JS API。目前似乎Flot更受欢迎,但Google Visu似乎真的很强大。 你用过flot grails插件吗? - fabien7474
肯定看起来Google可视化相当先进。我确实使用了flot插件(刚刚更新到最新的0.6版本)-它是一个非常薄的层,只是打包js。我还编写了一个更复杂的层,以使其更容易与grails一起使用。也就是说,您可以传递一个映射列表,并提取您指定的属性并呈现图形。我计划在某个时候发布它,但可以提供到目前为止的代码-如果有兴趣,请发送电子邮件至jean dot barmash at gmail.com。 - Jean Barmash

1

有一个看起来不错的开源项目叫做jqPlot(http://www.jqplot.com/)。它也是基于jQuery的。我会尝试使用jqPlot,因为jQuery flot似乎已经不再更新了。


0

ExtJS总是让我感到复杂和庞大。 - Rafael Sanches
学习曲线很陡峭,没错,但仍然值得。 - TheHippo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接