【问题标题】:d3 - Show only values using d3.nest()d3 - 使用 d3.nest() 仅显示值
【发布时间】:2013-12-24 06:46:03
【问题描述】:

我有一个d3.nest() 函数,它给出了以下结果。

[
  {
    "key": "one",
    "values": [
      {
        "date": 1385856000000,
        "values": 10
      },
      {
        "date": 1385942400000,
        "values": 20
      },
      {
        "date": 1386028800000,
        "values": 10
      },
      {
        "date": 1386115200000,
        "values": 17
      },
      {
        "date": 1386201600000,
        "values": 15
      }
    ]
  },
  {
    "key": "two",
    "values": [
      {
        "date": 1385856000000,
        "values": 18
      },
      {
        "date": 1385942400000,
        "values": 13
      },
      {
        "date": 1386028800000,
        "values": 18
      },
      {
        "date": 1386115200000,
        "values": 24
      },
      {
        "date": 1386201600000,
        "values": 26
      }
    ]
  },
  {
    "key": "three",
    "values": [
      {
        "date": 1385856000000,
        "values": 19
      },
      {
        "date": 1385942400000,
        "values": 22
      },
      {
        "date": 1386028800000,
        "values": 17
      },
      {
        "date": 1386115200000,
        "values": 16
      },
      {
        "date": 1386201600000,
        "values": 12
      }
    ]
  },
  {
    "key": "four",
    "values": [
      {
        "date": 1385856000000,
        "values": 35
      },
      {
        "date": 1385942400000,
        "values": 16
      },
      {
        "date": 1386028800000,
        "values": 18
      },
      {
        "date": 1386115200000,
        "values": 11
      },
      {
        "date": 1386201600000,
        "values": 10
      }
    ]
  }
]

功能:

d3.csv('data.csv', function(data){
        data.forEach(function(d) {
            d.date = Date.parse(d.date)
            d.values = +d.values
        })

        var nest = d3.nest()
                    .key(function(d) { return d.label; })
                    .rollup(function (v) { return v.map(function (d) { delete d.label; return d; })})
                    .entries(data)

        d3.select('body').append('pre')
               .text(JSON.stringify(nest, null, '  '));
    })

数据:

标签,日期,值 一、2013-12-01,10 一、2013-12-02,20 一、2013-12-03、10 一、2013-12-04,17 一、2013-12-05,15 二、2013-12-01,18 二、2013-12-02,13 二、2013-12-03,18 二、2013-12-04,24 二、2013-12-05,26 三、2013-12-01,19 三、2013-12-02,22 三、2013-12-03,17 三、2013-12-04,16 三、2013-12-05,12 四、2013-12-01,35 四、2013-12-02,16 四、2013-12-03,18 四、2013-12-04,11 四、2013-12-05、10

我的要求是 - 结果我不希望出现 datevalues 标签。我只希望出现datevalues 列的值。

这样的例子1385856000000, 10

我有没有机会在values 列表中获得方括号而不是大括号,例如[ 1385856000000, 10 ] 而不是{ 1385856000000, 10 }

将不胜感激。

【问题讨论】:

    标签: javascript d3.js nvd3.js


    【解决方案1】:

    我自己找到了答案。

    下面的函数给了我结果。

    d3.csv('data.csv',函数(数据){ data.forEach(函数(d){ d.date = Date.parse(d.date) d.values = +d.values }) var 巢 = d3.nest() .key(function(d) { return d.label; }) .rollup(function (v) { return v.map(function (d) { delete d.label; return [d.date, d.values]; })}) .条目(数据) d3.select('body').append('pre') .text(JSON.stringify(nest, null, ' ')); })

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-27
      • 1970-01-01
      • 1970-01-01
      • 2018-11-19
      • 1970-01-01
      相关资源
      最近更新 更多