有没有人会推荐一个特别的JavaScript图表库——特别是一个根本不使用flash的库?
当前回答
有越来越多的纯JavaScript图表的开源和商业解决方案不需要Flash。在这个回答中,我将只介绍开源选项。
对于不需要Flash的图像,有两类主要的JavaScript解决方案:
基于画布的,在IE中使用ExplorerCanvas渲染,这反过来依赖于VML 基于标准的浏览器上的SVG,在IE中呈现为VML
这两种方法各有利弊,但对于图表库,我推荐后者,因为它与DOM集成得很好,允许使用DOM操作图表元素,最重要的是设置DOM事件。相比之下,Canvas图表库必须重新发明DOM轮来管理事件。因此,除非您打算构建没有事件处理的静态图形,否则SVG/VML解决方案应该更好。
对于SVG/VML解决方案,有许多选项,包括:
Dojox图表,如果您已经使用了Dojo工具包,那就很好 Raphael-based解决方案
Raphael是一个非常活跃,维护良好,成熟的开源图形库,具有非常好的跨浏览器支持,包括IE 6到8,Firefox, Opera, Safari, Chrome和Konqueror。Raphael不依赖于任何JavaScript框架,因此可以使用Prototype, jQuery, Dojo, Mootools等…
有许多基于拉斐尔的图表库,包括(但不限于):
gRaphael, Raphael图形库的扩展 Ico,具有基于单个函数调用的直观API来创建复杂的图表
披露:我是github上Ico分支之一的开发者。
其他回答
jqPlot很棒。如果你的需求相当“正常”,你只是想画一些图表,你可能会被大量的js图表选项所淹没。假设您不想花费数小时进行研究,那么就使用jqPlot,因为它可能是您最好的选择。它很好地涵盖了大多数人的大多数用例。一些替代方案专门针对特定类型的图表,或者根据特定的用例构建。
看看ZingChart HTML5 Canvas, SVG, VML和Flash图表。非常强大和兼容的库。我是Zing团队的一员-在twitter上提到我们@zingchart或发送任何问题到support@zingchart.com。
http://code.google.com/apis/visualization/documentation/gallery.html
有非常酷的互动选项,包括地图,仪表和图表。
Sencha收购了Raphael,现在他们的图表是纯javascript版本4。上面提到的Emprise和HighCharts是我最喜欢的两个。
http://www.sencha.com/
Flotr是另一个基于Prototype的纯Javascript图表库,灵感来自Flot