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

jac*_*ank 29 javascript svg d3.js

嗨,我正在查看秤的文档,它显示了这样的格式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]);我会得到一个错误

TypeError:d3.scaleLinear不是函数

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

编辑:是秤的当前文档.

小智 52

要使用d3.js 版本3创建线性比例,请使用APId3.scale.linear()

并使用API 创建版本4和5的线性比例d3.scaleLinear()

可以在此处找到用于为这两个版本创建线性比例的API参考:

v3.x scale.linear

v4.x scaleLinear


Lar*_*off 7

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


Ali*_*eza 5

他们正在做同样的事情,但只是代码更改发生在D3.js版本3版本4 ......

所以线性不再是d3框架的尺度对象的属性......

相反,它是d3的一部分,带有camelCase语法...

所以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.