D3.js 和 Cytoscape.js 有啥区别? [关闭]

Posted

技术标签:

【中文标题】D3.js 和 Cytoscape.js 有啥区别? [关闭]【英文标题】:What is the difference between D3.js and Cytoscape.js? [closed]D3.js 和 Cytoscape.js 有什么区别? [关闭] 【发布时间】:2013-05-22 11:27:13 【问题描述】:

D3.js 和 Cytoscape.js 有什么区别?

为什么有人会选择 Cytoscape 而不是 D3.js?

【问题讨论】:

【参考方案1】:

D3 用于图表,主要是静态图表。 Cytoscape.js 让您可以操作高度可定制的交互式图形,并拥有与 jQuery 一样易于使用的 API。

D3 用于任意 SVG。这意味着虽然它可以用来制作很多不同的东西,但您必须自己构建渲染器、交互和建模。有时这就是你所需要的。 (注意 SVG 往往无法高效地渲染包含大量 SVG 元素的高度复杂的场景,因此请仔细评估您的应用需求。)

Cytoscape.js 是一个专注于图论(网络)的库。它有一个内置的高性能渲染器,它有手势和事件,它有一个开箱即用的复杂图形模型,等等。因为它更专注,Cytoscape.js 让你可以用更少的代码做更多的图形——但是当然,你不能将它用于条形图或点图之类的东西。

如果您想要一个简单的网站图表,D3 非常棒。如果您想构建一个具有严肃图形组件的应用程序,而无需重新发明***,Cytoscape.js 非常棒。

【讨论】:

截至 16 年 3 月,这一切是否仍然有效?同时发生了什么变化? Cytoscape.js 比 2013 年更快,功能更多。D3 仍然是 DOM/SVG-only 和通用的。 SVG 对于大型可视化仍然很慢,而且几乎可以肯定它总是比 Cytoscape.js 使用的光栅图形慢。 D3 非常适合条形图或饼图 - 简单,主要是静态的东西。 静态的东西?你检查过 D3 示例库吗? 是的——虽然 SVG 允许更小、更简单的可视化——使用 SVG/D3 更难或不可能实现更大、更复杂的可视化。如前所述,必须手动管理基本的东西,如遍历支持或手势和触摸支持,这意味着开发人员需要做更多的工作。各有各的。 @ErikKaplun 问“这个 3 岁的答案仍然成立吗?”5 年后,我问“这个 8 岁的答案仍然成立吗?”

以上是关于D3.js 和 Cytoscape.js 有啥区别? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

通过 npm 为 Angular 2 TypeScript 项目安装 d3.js 有啥好处吗?

Cytoscape.js 的性能和布局

Cytoscape.js 乔木布局画布渲染器?

cytoscape.js 图,仅显示/绘制少数节点和边缘

Cytoscape.js 中节点和边的内联编辑器

Cytoscape.js eles.style 更改立即更新