簡體   English   中英

d3-使用d3.nest()僅顯示值

[英]d3 - Show only values using d3.nest()

我有一個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, '  '));
    })

資料:

label,date,values
one,2013-12-01,10
one,2013-12-02,20
one,2013-12-03,10
one,2013-12-04,17
one,2013-12-05,15
two,2013-12-01,18
two,2013-12-02,13
two,2013-12-03,18
two,2013-12-04,24
two,2013-12-05,26
three,2013-12-01,19
three,2013-12-02,22
three,2013-12-03,17
three,2013-12-04,16
three,2013-12-05,12
four,2013-12-01,35
four,2013-12-02,16
four,2013-12-03,18
four,2013-12-04,11
four,2013-12-05,10

我的要求是-結果我不希望出現datevalues標簽。 我只希望顯示datevalues列的values

像這樣的1385856000000, 10

我有沒有機會在values列表中像這樣[ 1385856000000, 10 ]而不是{ 1385856000000, 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.date, d.values]; })})
                    .entries(data)

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM