我双方D3和拉斐尔着迷。 据我所知,拉斐尔是建立在D3的顶部,它是跨浏览器兼容,但我不知道哪一个更适合什么样的情景。 可有人请一些线索? 我的直接用例潜在地使用SIMILE时间轴,并与一个状态图(对于我打算使用D3 /圣拉斐尔)集成起来。 谢谢!
Answer 1:
拉斐尔是不是建立在D3。
拉斐尔将帮助您绘制元素。 D3是更全面的,并会帮助你将数据绑定到元素。 所以,我要说D3更强大。 本次论坛讨论讨论使用D3呈现一个比喻时间表,他们是指这个项目它实现了在D3的时间表。 所以乍一看,D3是你的答案。
然而,鉴于似乎没有成为一个D3部件,其处理SIMILE时间表你,无论是拉斐尔或D3可能是一个不错的选择。 也就是说,除了一个事实,即D3不会与Internet Explorer的早期版本中很好地工作,在解释这篇文章。 所以,如果你需要支持早期版本的IE浏览器,你就要去与拉斐尔更好。
Answer 2:
D3是更难学习,而不是拉斐尔,但在这两种情况下,你还必须学会SVG才能够创造更好的动画。 在另一方面,通常D3的可视化需要的不仅仅是类似的处理或拉斐尔的例子数学少,因为已经有很多预先包装的布局。
我会说D3是一个显而易见的原因是更好的选择:D3是基于当前的Web标准堆栈上(HTML,DOM - 即使你恨它,你需要使用它,CSS,SVG,甚至帆布),并且是一个图书馆用于处理数据。 作为一个数据框架,D3也挤满了来自:
- 吨的算法和布局(力布局,堆布局,树木等),
- 一些基本数据争吵功能(通过汇总嵌套,交叉,组-见这些例子: http://bl.ocks.org/phoebebright/raw/3176159/ ),
- jQuery的风格选择,
- 也可视原语(d3.svg带有你需要的简单图形的一切)。
因为它代表D3不仅超过拉斐尔和更好地处理在许多情况下,而且对jQuery的,underscore.js等框架一个可行的替代。 有很多图表建立在它之上库,让你随时可以只需拖放一些很酷的图表,并改写它周围的数据包装。
你可以使用这个界面找到一些好的时间表的例子: http://biovisualize.github.com/d3visualization/#visualizationType=timeline
Answer 3:
两者是不同的动物。
RaphaelJS简化和扩展的功能的,基于SVG和VML矢量图形。
D3js只是操作DOM,依靠图形标准(SVG和Canvas,在酒吧的图表,你可以使用的DIV太)来绘制。 例如d3.svg.symbol()
返回的内容d
参数,将其传递给path
上的SVG元素,但不通过本身绘制符号。
您可以使用D3js操纵数据和拉斐尔画出来。
此博客介绍了如何D3js + 拉斐尔结合起来。 并检查D3的拉斐尔实现了。
Answer 4:
作为公共部门的顾问,我发现学习拉斐尔是因为我的很多客户使用旧版本的浏览器的时间对我来说是更好的投资。 我现在的客户端使用IE7专门其中拉斐尔的作品完美与和D3没有。
个人而言,我宁愿使用D3,但专业,这不是我的现实情况。