javascript - d3.js 和 chart.js 对比(仅针对图表)

标签 javascript d3.js charts chart.js

<分区>

我在我的项目中多次使用过 chart.js,但我从未使用过 d3.js。很多人说 d3.js 是最好的图表 javascript 框架,但没有人能够解释原因,尤其是当我想与 chart.js 进行比较时。

我找到了这个:http://www.fusioncharts.com/javascript-charting-comparison/ 但这不是我想要的。

有谁知道这些框架在可用性和性能方面的比较(仅针对图表)?

最佳答案

d3.js 不是“图表”库。它是一个用于创建和操作 SVG/HTML 的库。它提供了一些工具来帮助您可视化和操作您的数据。虽然您可以使用它来创建传统图表(条形图、折线图、饼图等),但它的功能远不止于此。当然,随着这种“能力如此之强”而来的是更陡峭的学习曲线。有许多构建在 d3.js 之上的常规图表库 - nvd3.jsdimple.jsdc。 js 如果你想走那条路。

我对 Chart.js 不熟悉,但快速浏览一下网站就会知道它更像是一个普通的图表库。它支持 6 种基本图表类型,您永远不会这样做 stuff like this with it . 但是API 看起来很简单,我相信它很容易使用。

除此之外,两者之间最明显的区别是 Chart.js 是基于 Canvas 的,而 d3.js 主要是关于 SVG 的。 (现在我说 主要是 因为 d3.js 可以操作所有类型的 HTML 元素,所以 you could even use it 可以帮助您在 Canvas 上绘图。)一般来说, Canvas 的性能优于 SVG对于大量元素(我说的是非常大——数千个点、线等)。另一方面,SVG 更易于操作和交互。使用 SVG,每个点、线等都成为 DOM 的一部分——您现在想要那个点变绿,只需更改它即可。使用 Canvas 时,它是一个静态绘图,需要重新绘制以进行任何更改 - 当然它绘制得如此之快,您通常不会注意到。这是 some good reading来自微软。

关于javascript - d3.js 和 chart.js 对比(仅针对图表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27347798/

相关文章:

javascript - 如何使用正则表达式替换所有出现的字符,除非该字符包含在单词中

javascript - 如何在 ASP MVC 设置中将 AngularJS 中的变量从一个 Controller 传递到下一个 Controller ?

javascript - 为什么我的 SVG 没有被创建?

javascript - php javascript中的多折线图

excel - 当日期不为空时,如何删除Excel图表中的空值?

javascript - 我可以使用 CDN 中的 ES Modules 库吗?

javascript - 将 PHP 插入 jQuery css()

javascript - 对 SVG 组应用 CSS 变换(例如 D3 的缩放变换)会导致其文本元素在 Safari 中闪烁

javascript - 如何使用svg g实现可折叠树结构

charts - Flutter 包失败