【问题标题】:To use d3.js methods, Does data need to be in Json format?要使用 d3.js 方法,数据是否需要为 Json 格式?
【发布时间】:2017-05-22 12:28:31
【问题描述】:

我如何使用像 nest() 这样的方法来处理数组格式的数据而不是对象数组?

编辑:例如,由于数据是动态的,因此我无法访问具有属性名称(如 d.name)的值。属性名称及其值随用户输入文件而变化。我想在用户选择特定属性时通过索引值 d[0] 访问,而不是通过 d.name 访问。

除此之外,我是否需要使用服务器来使用此处指定的 d3.js:http://learnjsdata.com/getting_started.html?

感谢您的帮助,

【问题讨论】:

    标签: javascript arrays json csv d3.js


    【解决方案1】:

    您的问题相当广泛,很难真正了解您在问什么。所以,我将回答其中具体的一部分:

    我如何使用像 nest() 这样的方法来处理数组格式的数据而不是对象数组?

    d3 提供了所谓的accessor 方法,这些方法只是返回一段数据的函数。在大多数示例中,您将看到对象数组和这些访问器函数返回对象的属性。但是,没有什么能阻止您返回内部数组的一部分。这是您的带有数组数组的巢。我编写了key accessor 函数来返回数组的一部分(第一个值):

    <!DOCTYPE html>
    <html>
    
    <head>
      <script data-require="d3@4.0.0" data-semver="4.0.0" src="https://d3js.org/d3.v4.min.js"></script>
    </head>
    
    <body>
      <script>
        var data = [
          [0, 1],
          [0, 2],
          [0, 3],
          [1, 1],
          [1, 2],
          [1, 3]
        ];
    
        var entries = d3.nest()
          .key(function(d) {
            return d[0];
          })
          .entries(data);
    
        console.log(entries);
      </script>
    </body>
    
    </html>

    【讨论】:

    • @krishnadamarla,看起来你不是一个数组数组,而是一个 字符串数组(它们之间有逗号的数字)。你真的需要为你正在尝试做的事情创建一个可重现代码示例......
    • (抱歉删除评论,我之前也想处理数据),谢谢您的回答。但是,我的数据相当大。例如,[ [1,2,3,4,5,6,.....16000], [1,2,3,....16000],.....[ ], [ ]。 ..直到 46 个数组]。这 46 个数组是行值直到 16000 的列。我编写了一个嵌套函数,类似于您指定的在数据上嵌套数组 30(第 30 列)的函数。但这会像 imgur.com/a/HOLvj 一样返回,而不是将单独的键作为键:0、键:10 等。
    猜你喜欢
    • 2022-11-01
    • 2021-08-25
    • 2015-08-28
    • 2012-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-29
    相关资源
    最近更新 更多