TLDR:有没有人同时拥有protovis和D3.js的经验来阐明两者之间的差异?
在过去的两个星期中,我一直在与protovis一起玩,到目前为止,一切都很棒。除了现在,我似乎在动画方面有点撞墙。
protovis:http://vis.stanford.edu/protovis/
我想做一些非常简单的动画,但是使用protovis感觉起来不那么直观-我开始认为protovis从未真正用于动画。因此,我开始查看D3.js:
http://mbostock.github.com/d3/ex/stack.html
看起来非常相似,但是:
任何人都可以阐明其他差异吗?
我将非常感谢您提供的所有信息
最佳答案
我在Protovis和D3上做了很多工作。除了您提到的要点外,我认为以下区别对我来说很突出:
.width(10)
或.fillStyle('#00C')
代替.style('width', 10)
或.attr('fill', '#00C')
。在这些示例中,差异是微不足道的,但是当您执行类似在SVG图像中绘制线条的操作时,会有很大的差异。结果是使用D3可能会感觉有些低级-您拥有更多的控制权,但是您必须非常熟悉SVG语法才能更轻松地完成Protovis的某些工作。 pv.sum()
或pv.mean()
之类的基本实用程序没有D3等效项,尽管在这两个库之间共享了诸如.nest()
之类的某些实用程序。 编辑10/1/12: D3填写了其数据实用程序,但是Protovis仍然包含了D3所不包含的一些实用程序,例如pv.dict
,pv.numerate
和pv.repeat
。大概它们被排除在外是因为它们被认为不太有用。 setInterval
手动编写所有代码。 D3似乎使它成为库中不可或缺的一部分。 编辑(11/12/11):似乎有一个新的重大不同-截至2011年6月28日,Protovis不再处于积极开发中,Protovis团队正在推广D3.js。最后一个版本非常稳定,因此不应阻止您使用它,但这绝对是要考虑的一点。