【发布时间】:2010-09-12 07:24:10
【问题描述】:
有人会推荐一个特定的 JavaScript 图表库 - 特别是根本不使用 Flash 的吗?
【问题讨论】:
标签: javascript charts
有人会推荐一个特定的 JavaScript 图表库 - 特别是根本不使用 Flash 的吗?
【问题讨论】:
标签: javascript charts
【讨论】:
它可能不是您想要的,但
Google's Chart API 非常酷且易于使用。
【讨论】:
不是 Javascript 库,但它可能是一个合适的替代方案 - 查看 Google Charts,您可以通过将查询字符串数据传递给他们的网络服务来生成图表。
【讨论】:
试试可以做成图表的 MIT 明喻时间线 - http://simile.mit.edu/timeline/
【讨论】:
我最喜欢的(flot)已经被提及了。
但一定要调查Ortho。 它非常适合树形图和时间线。
【讨论】:
看看Bluff。它是用于 Ruby 的 Gruff 图形库的 JavaScript 端口。
【讨论】:
dojo 图表库中有很多活动,很棒的是我在 AIR 应用程序中使用它也没有问题,非常酷! 参见例如http://www.sitepen.com/blog/2008/05/27/dojo-charting-event-support-has-landed/
【讨论】:
试试PlotKit
【讨论】:
查看Google Visualization API,这是对更简单的Chart API 的一种概括
【讨论】:
你只需要原型图
【讨论】:
Highcharts 是一个用纯 JavaScript 编写的图表库,提供了一种将交互式图表添加到您的网站或 Web 应用程序的简单方法。 Highcharts 目前支持折线、样条、面积、areaspline、柱形、条形、饼状和散点图类型。
【讨论】:
对于不需要 Flash 的纯 JavaScript 图表的开源和商业解决方案越来越多。在此回复中,我将仅介绍开源选项。
对于不需要 Flash 的图形,主要有 2 类 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的开发者。
【讨论】:
jqPlot 很棒。如果您的要求相当“正常”并且您只想绘制一些图表,那么您可能会被 js 图表选项的数量所淹没。假设您不想进行数小时的研究,只需使用 jqPlot,因为它可能是您最好的选择。它很好地涵盖了大多数人的大多数用例。一些替代方案专门针对某种类型的图表或基于特定用例构建。
【讨论】:
还有另一个基于 SVG 的 javascript 库。它被称为Protovis,来自斯坦福可视化组
它还允许制作漂亮的交互式图形和可视化。
http://vis.stanford.edu/protovis/ex/
虽然它只适用于现代网络浏览器
更新:正如他们所说,protovis 团队已转移到另一个名为 d3.js(数据驱动文档)的库:
“Protovis 团队现在正在开发一个新的可视化库 D3.js,改进了对动画和交互的支持。D3 建立在 Protovis 中的许多概念之上”
现在可以在以下位置找到新库:
http://mbostock.github.com/d3/
更新 2:
“Rickshaw”是一个用于创建交互式时间序列图的 JavaScript 工具包。基于 d3.js,它大大简化了 d3.js 的工作,虽然功能稍逊一筹。
【讨论】:
Sencha 收购了 Raphael,现在他们的图表从版本 4 开始是纯 javascript。上面提到的 Emprise 和 HighCharts 是我最喜欢的两个。
【讨论】:
更多不寻常的图表:http://thejit.org/
【讨论】:
查看ZingChart HTML5 Canvas, SVG, VML and Flash Charts。非常强大且兼容的库。我是 Zing 团队的一员 - 在推特上提及我们 @zingchart 或向 support@zingchart.com 提出任何问题。
【讨论】:
我最近在寻找一个 javascript 图表库,我评估了一大堆,最后选择了非常符合我要求的 jqplot。正如让文森特的回答所提到的,您实际上是在基于画布和基于 svg 的解决方案之间进行选择。
在我看来,主要的优点和缺点如下。如果您想构建高度动态/交互式图表,基于 SVG 的解决方案,如 Raphael(和分支)非常棒。或者,如果您的图表要求非常超出规范(例如,您想创建某种混合图表,或者您想出了其他人还没有想到的新可视化)。缺点是学习曲线和您必须编写的代码量。你不会在几分钟内敲出图表,准备投入一些真正的学习时间,然后编写大量代码来生成一个相对简单的图表。
如果您的图表要求相当标准,例如您想要一些折线图或条形图,或者可能是一两个饼图,但交互性有限,那么值得研究基于画布的解决方案。几乎没有任何学习曲线,您将能够在几分钟内获得基本图表,您无需编写大量代码,只需几行基本的 javascript/jquery 即可。当然,您将只能生成该库支持的特定类型的图表,通常仅限于各种风格的折线、条形、饼形。交互性选择将非常有限,也就是说,对于那里的许多库来说不存在,尽管一些有限的悬停效果可能是更好的。
我选择了基于画布的解决方案 JQplot,因为我只需要一些标准类型的图表。根据我的研究和对各种选择的尝试,我发现它功能相当全面(如果您只追求标准图表)并且非常易于使用,因此如果您的要求相似,我会推荐它。
总结一下,现在简单又想要图表,那就用JQplot吧。复杂/不同,时间紧迫,然后与拉斐尔和朋友一起去。
【讨论】:
http://code.google.com/apis/visualization/documentation/gallery.html
具有非常酷的交互选项,包括地图、仪表和图表。
【讨论】:
【讨论】:
我可以推荐ArcadiaCharts。适用于 JavaScript 和 GWT 的全新专业图表库。无需插件即可在所有浏览器中运行。使用简单快速:只需几行代码即可创建美观的图表。 免费用于非商业用途。
【讨论】:
Fusion charts 有一个看起来很有前途的新 javascript/jquery 库。
【讨论】:
如果您只需要条形图。我发布了一些我在旧项目中使用的代码。有人告诉我,最近版本的 IE 上的 VML 实现被破坏了,但 SVG 应该可以正常工作。可能会回到项目并发布一些我已经拥有的服务器端渲染器,也许还有 WebGL 渲染层。有链接:http://blog.conquex.com/?p=64
【讨论】:
我们刚刚为我们的新创业公司购买了TechOctave Charts Suite 的许可证。我强烈推荐他们。许可很简单。图表看起来很棒!它很容易上手,并且在我们需要的时候有一个强大的 API。我对代码的简洁性和可扩展性感到震惊。对我们的选择感到非常满意。
【讨论】:
可能不是 OP 想要的,但由于这个问题已成为 JS 图表库选项列表:jQuery Sparklines 真的很酷。
【讨论】:
作为某种迟到的答案,试试 d3.js
http://mbostock.github.com/d3/
是 protovis 的延续。
浮动的最大区别在于支持的功能数量。
虽然 flot 可能更简单,但 d3.js 肯定更强大。
【讨论】: