我对d3和拉斐尔都非常着迷.我知道Raphael是建立在D3之上的,并且它是跨浏览器兼容的,但我不确定哪一个更适合什么情况.有人可以解释一下吗?我的直接用例可能是使用SIMILE时间轴并将其与状态图集合(我打算使用d3/Raphael).谢谢!
pax*_*man 26
D3比Raphael更难学,但在这两种情况下,你还必须学习SVG才能创造更好的动画.另一方面,通常D3可视化比类似的Processing或Raphael示例需要更少的数学,因为已经有许多预先打包的布局.
我会说D3是更好的选择,原因很明显:D3基于当前的Web标准堆栈(HTML,DOM - 即使你讨厌它需要使用它,CSS,SVG,甚至是Canvas),并且是一个库用于处理数据.作为一个数据框架,D3还包含:
在许多情况下,d3不仅比Raphael和Processing更好,而且也是jQuery,underscore.js和其他框架的可行替代品.在它之上构建了许多图表库,因此您可以随时拖放一些很酷的图表并重写它周围的数据包装器.
您可以使用此界面找到一些好的时间线示例:http://biovisualize.github.com/d3visualization/#visualizationType=timeline
jku*_*ski 17
两者都是不同的动物.
RaphaelJS简化和扩展了基于SVG和VML的矢量图形功能.
D3js只是操纵DOM并依赖于图形标准(SVG和Canvas,在条形图上也可以使用DIV)来绘制.例如,d3.svg.symbol()返回d参数的内容以将其传递给pathSVG上的元素,但不要自己绘制符号.
您可以使用D3js操纵数据并使用Raphael绘制它.
这篇博客解释了如何结合D3js + Raphael.并检查D3的Raphael实现.
Jar*_*red 10
作为一名公共部门顾问,我发现学习拉斐尔对我来说是一个更好的投资,因为很多时候我的客户使用旧版本的浏览器.我现在的客户使用的是IE7,其中拉斐尔完美地工作,而D3则不然.
就个人而言,我宁愿使用D3,但从专业角度来说,这不是我现实的情况.