【问题标题】:d3.scale.linear() vs d3.scaleLinear()d3.scale.linear() 与 d3.scaleLinear()
【发布时间】:2016-03-12 04:47:44
【问题描述】:

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

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

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

的错误

TypeError: d3.scaleLinear 不是函数

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

编辑:This 是当前的尺度文档。

【问题讨论】:

    标签: javascript d3.js svg


    【解决方案1】:

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

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

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

    v3.x scale.linear

    v4.x scaleLinear

    【讨论】:

    • 我在使用 CodePen 时遇到了同样的问题,当时我正在观看使用版本 3 的旧视频,但 CodePen 使用的是 4+。要查找您使用的版本,只需在项目目录中键入d3 -v
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      他们正在做完全相同的事情,但只是代码更改发生在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。

      【讨论】:

        【解决方案4】:

        按照 Hina 的规定,d3.scale.linear() 用于 D3 3.0,d3 4.0 采用平面命名空间约定。这是 d3 变更日志摘要中的一个 sn-p

        如果您不关心模块化,您可以忽略此更改并继续使用默认捆绑包。然而,采用 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>
        

        【讨论】:

          猜你喜欢
          • 2015-10-25
          • 2018-10-09
          • 1970-01-01
          • 1970-01-01
          • 2020-09-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多