有人会推荐一个特定的 JavaScript 图表库 - 特别是一个根本不使用 Flash 的库吗?
JavaScript 图表库
越来越多的不需要 Flash 的纯 JavaScript 图表的开源和商业解决方案。在此回复中,我将仅介绍开源选项。
对于不需要 Flash 的图形,有 2 类主要的 JavaScript 解决方案:
- 基于画布,使用 ExplorerCanvas 在 IE 中呈现,而后者又依赖于 VML
- 基于标准的浏览器上的 SVG,在 IE 中呈现为 VML
两种方法各有利弊,但对于图表库,我会推荐后者,因为它与 DOM 很好地集成,允许使用 DOM 操作图表元素,最重要的是设置 DOM 事件。相比之下,Canvas 图表库必须重新发明 DOM 轮来管理事件。因此,除非您打算构建没有事件处理的静态图,否则 SVG/VML 解决方案应该更好。
对于 SVG/VML 解决方案,有许多选项,包括:
- Dojox Charting,如果您已经使用Dojo 工具包就好了
- 基于Raphael的解决方案
Raphael是一个非常活跃、维护良好且成熟的开源图形库,具有非常好的跨浏览器支持,包括 IE 6 到 8、Firefox、Opera、Safari、Chrome 和 Konqueror。Raphael 不依赖于任何 JavaScript 框架,因此可以与 Prototype、jQuery、Dojo、Mootools 等一起使用......
有许多基于 Raphael 的图表库,包括(但不限于):
Highcharts 是一个用纯 JavaScript 编写的图表库,提供了一种向您的网站或 Web 应用程序添加交互式图表的简单方法。Highcharts 目前支持折线、样条、面积、面积样条、柱形、条形、饼图和散点图类型。
它可能不是您正在寻找的,但
Google 的 Chart API非常酷且易于使用。
还有另一个基于 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 的工作,尽管功能稍差。