JavaScript图表库

时间:2008-09-23 09:04:19

标签: javascript charts

有人会推荐一个特定的JavaScript图表库 - 特别是那个根本不使用Flash的图表吗?

29 个答案:

答案 0 :(得分:160)

越来越多的纯JavaScript图表的开源和商业解决方案不需要Flash。在此回复中,我将仅提供开源选项。

对于不需要Flash的图形,有两类主要的JavaScript解决方案:

  • 基于Canvas,使用ExplorerCanvas在IE中呈现,而ExplorerCanvas又依赖于VML
  • 基于标准的浏览器上的SVG,在IE中呈现为VML

这两种方法都有优点和缺点,但对于图表库,我会推荐后者,因为它与DOM很好地集成,允许使用DOM操作图表元素,最重要的是设置DOM事件。相比之下,Canvas图表库必须重新发明DOM轮来管理事件。因此,除非您打算构建没有事件处理的静态图形,否则SVG / VML解决方案应该更好。

对于SVG / VML解决方案,有许多选项,包括:

Raphael是一个非常活跃,维护良好且成熟的开源图形库,具有非常好的跨浏览器支持,包括IE 6到8,Firefox,Opera,Safari,Chrome和Konqueror。 Raphael不依赖于任何JavaScript框架,因此可以与Prototype,jQuery,Dojo,Mootools等一起使用......

有许多基于Raphael的图表库,包括(但不限于):

  • gRaphael,拉斐尔图形库的扩展
  • Ico,基于单个函数调用的直观API创建复杂图表

披露:我是one of the Ico forks on github的开发者。

答案 1 :(得分:70)

如果您使用jQuery我发现flot非常好 - 试试examples以确定它们是否符合您的需求,但我发现它们可以完成大部分工作我需要现在的项目。

此外,ExtJS 4.0引入了一系列强大的图表 - 功能非常强大,旨在处理实时数据。

答案 2 :(得分:60)

查看http://www.highcharts.com

Highcharts是一个用纯JavaScript编写的图表库,提供了一种向网站或Web应用程序添加交互式图表的简便方法。 Highcharts目前支持line,spline,area,areaspline,column,bar,pie和散点图类型。

答案 3 :(得分:36)

这可能不是你想要的,但是 Google's Chart API非常酷且易于使用。

答案 4 :(得分:15)

还有另一个基于SVG的javascript库。它被称为Protovis,它来自斯坦福可视化集团

它还允许制作漂亮的交互式图形和可视化。

http://vis.stanford.edu/protovis/ex/

虽然它仅适用于现代网络浏览器

更新: protovis团队已经转移到另一个名为d3.js(数据驱动文档)的库中,他们说:

“Protovis团队正在开发一个新的可视化库D3.js,它改进了对动画和交互的支持.D3基于Protovis中的许多概念构建”

现在可以在以下位置找到新库:

http://mbostock.github.com/d3/

更新2:

“人力车”是用于创建交互式时间序列图的JavaScript工具包。基于d3.js简化了d3.js的工作,尽管功能稍弱。

http://code.shutterstock.com/rickshaw/

答案 5 :(得分:14)

jqPlot很棒。如果您的要求相当“正常”并且您只想绘制一些图表,那么您可能会被js图表选项的数量所淹没。假设你不想做几个小时的研究,那就去jqPlot,因为它可能是你最好的选择。它涵盖了大多数人的大多数用例。有些替代方案专门针对某种类型的图表,或者考虑到特定用例而构建。

答案 6 :(得分:14)

我最近正在寻找一个javascript图表库,我在最终确定jqplot之前评估了一大堆,这非常符合我的要求。正如Jean Vincent的回答所提到的,你真的在​​基于画布和基于svg的解决方案之间做出选择。

在我看来,主要的利弊如下。如果要构建高度动态/交互式图表,基于SVG的解决方案(如Raphael(和分支)非常有用。或者,如果您的图表要求非常符合标准(例如,您想要创建某种混合图表,或者您想出了一个其他人尚未想到的新可视化)。缺点是学习曲线和您必须编写的代码量。你不会在几分钟内敲打图表,准备投入一些实际的学习时间,然后写出大量的代码来生成一个相对简单的图表。

如果您的图表要求合理标准,例如你想要一些线条或条形图或者一个或两个饼图,交互性有限,那么值得看一下基于画布的解决方案。几乎没有任何学习曲线,您将能够在几分钟内获得基本图表,您不需要编写大量代码,只需几行基本的javascript / jquery即可。当然,您只能生成库支持的特定类型的图表,通常仅限于各种线条,条形图,饼图。交互选择将是非常有限的,也就是说许多库不存在,尽管有一些有限的悬停效果可能与更好的。

我选择了JQplot这是一个基于画布的解决方案,因为我只需要一些标准类型的图表。从我的研究和各种选择中我发现它是相当全功能的(如果你只是在标准图表之后)并且非常容易使用,所以如果你的要求相似我会推荐它。

现在总结简单和想要的图表,然后使用JQplot。复杂/不同而且没有时间压力,然后与拉斐尔和朋友一起去。

答案 7 :(得分:4)

作为某种迟到的回答,请尝试d3.js
http://mbostock.github.com/d3/

这是protovis的延续 flot的最大区别在于支持的功能数量 虽然flot可能更简单,但d3.js肯定更强大。

答案 8 :(得分:3)

尝试PlotKit

答案 9 :(得分:3)

另一个是RGraph:Javascript图表和图表库:

http://www.rgraph.net

基于画布,所以它很快,大约有20种不同的图表类型。它也可以免费用于非商业用途!

答案 10 :(得分:3)

答案 11 :(得分:3)

Flotr是基于Prototype的另一个纯Javascript图表库,受Flot的启发

答案 12 :(得分:3)

我建议gRaphaël用于纯JavaScript图表以及它构建的纯JavaScript矢量图形库(Raphaël)。

gRaphaël目前支持Firefox 3.0 +,Safari 3.0 +,Opera 9.5+和Internet Explorer 6.0+。

答案 13 :(得分:2)

dojo图表库中有很多活动,而且我在AIR应用程序中使用它也没有问题,非常酷! 例如,参见http://www.sitepen.com/blog/2008/05/27/dojo-charting-event-support-has-landed/

答案 14 :(得分:2)

我最喜欢的(flot)已被提及。

但请务必调查Ortho。 它非常适合树形图和时间表。

答案 15 :(得分:2)

我们刚为新创公司购买了TechOctave Charts Suite许可证。我强烈推荐他们。许可很简单。图表看起来很棒!它很容易上手,并且在我们需要它时具有强大的API。我对代码的清晰和可扩展性感到震惊。非常满意我们的选择。

答案 16 :(得分:2)

尝试MIT明喻时间表,可以将其制作成图表 - http://simile.mit.edu/timeline/

或最后一个,http://code.google.com/p/gchart/

答案 17 :(得分:2)

查看Google Visualization API,这是对更简单的Chart API

的概括

答案 18 :(得分:2)

http://code.google.com/apis/visualization/documentation/gallery.html

拥有非常酷的互动选项,包括地图,仪表和图表。

答案 19 :(得分:1)

不是Javascript库,但它可能是一个合适的替代方案 - 请查看Google Charts,您可以通过将查询字符串数据传递到其Web服务来生成图表。

答案 20 :(得分:1)

对于更不寻常的图表:http://thejit.org/

答案 21 :(得分:1)

Sencha收购了Raphael,现在他们的排行榜是纯粹的javascript版本4.上面提到的Emprise和HighCharts是我的两个最爱。

http://www.sencha.com/

答案 22 :(得分:1)

Protochart就是您所需要的一切

答案 23 :(得分:1)

看看Bluff。它是Ruby的Gruff图形库的JavaScript端口。

答案 24 :(得分:0)

结帐ZingChart HTML5 Canvas, SVG, VML and Flash Charts。非常强大和兼容的库。我在Zing团队 - 在twitter @zingchart上提及我们或向support@zingchart.com提出任何问题。

答案 25 :(得分:0)

我可以推荐ArcadiaCharts。适用于JavaScript和GWT的全新专业图表库。在没有插件的情况下在所有浏览器中运行使用简单快捷:只需几行代码即可创建外观精美的图表。 免费用于非商业用途。

答案 26 :(得分:0)

Fusion charts有一个新的javascript / jquery库看起来很有希望。

答案 27 :(得分:0)

如果你需要的只是条形图。我发布了一些我在旧项目中使用过的代码。有人告诉我,最新版本的IE上的VML实现已被破坏,但SVG应该可以正常工作。可能会回到项目并发布一些我已经拥有的服务器端渲染器,也许还有WebGL渲染层。有一个链接:http://blog.conquex.com/?p=64

答案 28 :(得分:0)

可能不是OP正在寻找什么,但由于这个问题已经成为JS图表库选项的列表:jQuery Sparklines真的很酷。