d3.js的HTML5画布备选方案,图形可视化库

d3.js的HTML5画布备选方案,图形可视化库,html,web-applications,html5-canvas,d3.js,Html,Web Applications,Html5 Canvas,D3.js,是否有任何类似于d3.js的画布库(即svg库)。我有一个网站,我用svg元素编写了一个图形,但是它在智能手机的浏览器上效率不高,运行速度很慢。现在,我想用一个2d画布类型来改变它,看看它是否更好。你能推荐一个对此有用的画布库吗 感谢…的支持,我们曾经为应用程序制作了力导向图形样式的动画。当然,我和我的团队中的其他人对它进行了大量修改,它在应用程序中只起了很小的作用,但它是一个非常强大的框架。D3不一定是一个仅支持svg的库-svg在许多情况下都会被使用,但该库可以执行任何您想要的表示。请参见本

是否有任何类似于d3.js的画布库(即svg库)。我有一个网站,我用svg元素编写了一个图形,但是它在智能手机的浏览器上效率不高,运行速度很慢。现在,我想用一个2d画布类型来改变它,看看它是否更好。你能推荐一个对此有用的画布库吗


感谢…

的支持,我们曾经为应用程序制作了力导向图形样式的动画。当然,我和我的团队中的其他人对它进行了大量修改,它在应用程序中只起了很小的作用,但它是一个非常强大的框架。

D3不一定是一个仅支持svg的库-svg在许多情况下都会被使用,但该库可以执行任何您想要的表示。请参见本例中的平行坐标在D3中使用画布,作者:Kai Chang:

另请参见此处,以了解有关性能问题等的一些讨论,这些讨论可能会有所帮助:

看看哪个使用HTML5画布进行渲染。在写这篇文章的时候,它还处于起步阶段,但这个项目似乎很有希望。根据其wiki,该图书馆同时支持桌面和移动浏览器:

Cytoscape.js很容易集成到您的webapp中,尤其是 Cytoscape.js支持桌面浏览器(如Chrome)和移动浏览器 浏览器,比如iPad上的浏览器


js是一个刚刚推出的javascript库,它使用HTML5创建图表进行渲染。它的功能没有D3那么全面,但它正致力于在未来实现这一点

我知道我来晚了,但是时代变了,我相信这个问题应该得到更新的答案。SVG的性能在过去几年中有了很大的提高,特别是对于非平凡的图形化可视化,它通常提供了优异的性能;但这实际上取决于具体的用例:如果可视化很简单,并且包含数千个元素,特别是在移动设备上,那么画布可能是更快的选择。如果可视化几乎是微不足道的,那么WebGL将提供最好的性能,并轻而易举地击败Canvas,尤其是在移动设备上

然而,与SVG使用的声明性方法相比,WebGL和Canvas更难使用。像CSS动画和转换这样的事情很容易用SVG完成,并且由于硬件加速和完全独立于JavaScript性能,因此具有良好的性能。Canvas和WebGL始终需要JavaScript

如果您查看一下商业图形绘制库,就会发现它同时提供了所有三种技术。这是因为这三个都是最佳选择,具体取决于具体的用例

有一种方法可以比较SVG、Canvas和WebGL的性能,特别是在图形可视化环境中。它比较了各种图形大小和设备类别。“结论”是没有明确的赢家。通常情况下,这三种技术的结合会产生最佳效果。但是,对于较小的图形,SVG在大多数情况下都能提供非常好的结果,并且使用起来很愉快。我想说,这也是d3.js关注SVG而不是Canvas和WebGL的原因

这篇博客文章中有一个互动链接,让你们可以玩各种技术,看看它们的优缺点。当然,演示主要比较了特定库中使用的三种技术,因此您的结果可能会有所不同,但他们花了大量时间优化该库中的所有三种技术,因此我认为结果没有太大偏差


免责声明:我为创建上述库的公司工作,但我在此不代表我的雇主。我认为我所说的应该不仅适用于该库。

是否有SVG与CANVAS的性能比较?看起来画布要好得多,但对于数据可视化来说,以画布为中心的lib并不像D3那样多svg@V3ss0n:有关SVG与画布的比较,请查看上提供的比较。@V3ss0n:请参阅各种画布层的良好使用,以优化用户交互重画!印象深刻。老兄,非常感谢你提到这一点。今天我浏览了一大堆JS库,包括D3、JIT、Arbor、Sigma等等,它们要么是疯狂的(D3),要么是完全不灵活的(JIT,…)。这看起来可以节省我的时间。这个库的兼容性如何?