有人会推荐一个特定的JavaScript图表库 - 特别是那个根本不使用Flash的图表吗?
答案 0 :(得分:160)
越来越多的纯JavaScript图表的开源和商业解决方案不需要Flash。在此回复中,我将仅提供开源选项。
对于不需要Flash的图形,有两类主要的JavaScript解决方案:
这两种方法都有优点和缺点,但对于图表库,我会推荐后者,因为它与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的图表库,包括(但不限于):
披露:我是one of the Ico forks on github的开发者。
答案 1 :(得分:70)
如果您使用jQuery我发现flot非常好 - 试试examples以确定它们是否符合您的需求,但我发现它们可以完成大部分工作我需要现在的项目。
此外,ExtJS 4.0引入了一系列强大的图表 - 功能非常强大,旨在处理实时数据。
答案 2 :(得分:60)
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的工作,尽管功能稍弱。
答案 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)
答案 10 :(得分:3)
答案 11 :(得分:3)
答案 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/
答案 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是我的两个最爱。
答案 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真的很酷。