d3.scale.linear() vs d3.scaleLinear()
d3.scale.linear() vs d3.scaleLinear()
嗨,我正在查看秤的文档,它显示了这样的格式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>
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 如何在d3.js中返回路径的y坐标
- d3基于用户选择动态更新节点
- 有条件更新d3.js力图中节点的最佳方法
- 为什么我的d3.jsselectAll+过滤器没有过滤
- 使用D3.js计算带有字母间距的文本长度
- d3中堆栈函数和嵌套函数之间的差异
- D3.js模式不适用于弧形或圆环图
- d3.js Chord图的动态工具提示
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- D3嵌套组作为x轴
- d3.hexbin插件-动态定义颜色域以适应数据
- HTML5FileReader输出到D3.js图表
- 如何在d3上的图形中添加放大和缩小按钮
- 在对象数组中查找多个值的d3范围
- d3中的条件转换
- D3.js生成有效的SVG,但不显示任何内容
- d3.js:限制画笔的大小
- d3.scale.linear() vs d3.scaleLinear()