IT资讯 D3.js 6.0 稳定版发布,数据可视化 JavaScript 库

aiden · 2020-09-01 09:00:06 · 热度: 75

D3(或者叫 D3.js)6.0 稳定版已发布,距上个大版本 5.0 更新已过去两年多。

主要变化

D3 6.0 引入了部分不向后兼容的变化。

d3-array 现在使用原生集合(Map and Set)来代替对象字典,并且支持接受任何可迭代项(for-of)而不仅仅是数组。d3.group 和 d3.rollup 目前是强大的新聚合函数,它们取代了 d3.nest,并且与 d3-hierarchy 和 d3-selection 形成良好的搭配使用。此外还有很多新的数组辅助工具,比如 d3.greatestd3.quickselect 和 d3.fsum

d3-selection 现在直接将事件传递给事件监听器,取代了 d3.event global,使 D3 与 vanilla JavaScript 和大多数其他框架保持一致。

d3-delaunay 取代了 d3-voronoi,极大地提高了性能和健壮性,它还支持快速搜索。此外还引入了新的 d3-geo-voronoi,适用于球形(地理)数据。

d3-random 得到了极大的扩展,并包含了一个用于种子随机性的快速线性同余生成器。

d3-chord 为和弦图提供了新的布局。

d3-scale 增加了一个新的 radial scale 类型。

......以及其他各种小的改进和新的改进例子


d3-selection 使用新的事件管理器:

  • d3.event → (event) 作为第一个参数传递给所有监听者 [details]
  • d3.mouse, d3.touch, d3.touches, d3.clientPoint → d3.pointer [details]

d3-brushd3-drag 和 d3-zoom 同样使用了新的事件管理器:

  • brush.on 监视器现在可以接收事件 [details]
  • drag.on 监视器现在可以接收事件 [details]
  • zoom.on 监视器现在可以接收事件 [details]

d3-voronoi 已被弃用,并被 d3-delaunay 取代:

  • d3.voronoi → d3.Delaunay [details]

d3-collection 已被弃用,其方法已被取代:

  • d3.nest → d3.group and d3.rollup (from d3-array) [details]
  • d3.map → Map [details]
  • d3.set → Set [details]
  • d3.keys → Object.keys [details]
  • d3.values → Object.values [details]
  • d3.entries → Object.entries [details]

d3-array 已移除两个方法:

  • d3.histogram → d3.bin [details]
  • d3.scan → d3.leastIndex [details]

d3-interpolate 的补充方法包含一个破坏兼容性的变更:

  • d3.interpolateTransformCss 现在的输入更严格 [details]

d3-format 改变了其减号的显示方式:

  • 负值的默认符号变成了 unicode 减号,而不是连字符减号[details]

最后,D3 放弃了对 Bower 的支持,现在只发布到 npm 和 GitHub。

D3 采用了 ES2015,因此现在需要一个支持 ES2015 的浏览器方可使用。对于旧的浏览器,必须自带解释器,详情查看迁移指南

D3 是数据可视化领域重要的 JavaScript 可视化库,它将强大的可视化交互技术与数据驱动 DOM 方法结合起来, 让你可以充分使用现代浏览器的强大能力自由地对数据进行可视化,在学术界、专业团队中享有极大声誉。

D3 正如其名,Data Driven Documents 数据驱动文档,它与 G2 、Echarts 等不同,更加接近底层,直接操作 SVG 元素,拥有更大的自由度,几乎可以实现所有的 2D 设计需求,同时也带来了高学习曲线的成本。D3 长于可视化,但不止于可视化,还提供了数据处理、数据分析、DOM 操作等诸多功能。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册