d3.scale.linear() vs d3.scaleLinear()

d3.scale.linear() vs d3.scaleLinear()

本文关键字:d3 scaleLinear vs scale linear      更新时间:2023-09-26

嗨,我正在查看秤的文档,它显示了这样的格式var x = d3.scaleLinear([10,130]).range([0,960])我觉得这很奇怪,因为我在网上看到的大多数示例都使用这样的东西:

var x = d3.scale.linear().domain([10,130]).range([0,960]),它有效。

如果我使用var x = d3.scaleLinear([10,130]).range([0,960]);则会收到类似

类型错误:d3.scaleLinear 不是函数

为什么您认为文档中的示例与我在网上看到的示例之间存在差异? 也许我不明白如何阅读文档。

编辑:这是秤的当前文档。

要使用 d3 创建线性刻度.js版本 3 请使用 API d3.scale.linear()

要使用版本 4 和 5 创建线性刻度,请使用 API d3.scaleLinear()

可在此处找到有关为两个版本创建线性刻度的 API 参考:

v3.x 比例线性

v4.x 比例线性

您正在查看的文档是针对 D3 的插件 - 如何安装它在同一页面上进一步描述。它最终将成为D3下一个主要版本的一部分。

他们正在做完全相同的事情,但这只是从版本 3版本 4 D3.js发生了代码更改......

所以线性不再是 d3 框架的比例对象的属性......

相反,它是带有驼峰语法的 D3 的一部分......

所以d3.js v3使用d3.scale.linear()

要使用 v4 创建线性刻度,请改用d3.scaleLinear()...

版本3:

d3.scale.linear()

构造一个新的线性刻度,默认域 [0,1] 和 默认范围 [0,1]。因此,默认线性刻度等效于 数字的恒等函数;例如线性 (0.5) 返回 0.5.

版本4:

d3.scaleLinear()

构造一个新的连续尺度,单位域 [0, 1], 单位范围 [0, 1],默认插值器和钳位禁用。 线性秤是连续定量的良好默认选择 数据,因为它们保留了比例差异。每个范围值 y 可以表示为域值 x: y = mx + b 的函数。

根据 Inna 的规定,d3.scale.linear() 用于 D3 3.0,d3 4.0 采用了平面命名空间约定。这是 d3 更新日志摘要中的片段

如果您不关心模块化,则可以忽略此更改并继续使用默认捆绑包。但是,采用 ES6 模块有一个不可避免的后果:D3 4.0 中的每个符号现在共享一个平面命名空间,而不是 D3 3.x 的嵌套命名空间。例如,d3.scale.linear 现在是 d3.scaleLinear,...

来源: https://github.com/d3/d3/blob/master/CHANGES.md

编辑:忘了提及 - 要修复您的错误,您可能需要将链接或文件更新到程序中的d3。我直接从网站上调用它:

<script src="https://d3js.org/d3.v4.min.js"></script>