我有一个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
我的要求是 - 在结果中我不希望出现date
和values
标签。我只希望显示date
和values
列的值。
此示例1385856000000, 10
。
我是否有可能在values
列表中使用方括号而不是大括号,而不是[ 1385856000000, 10 ]
而不是{ 1385856000000, 10 }
。
感谢任何帮助。
答案 0 :(得分:3)
我自己找到了答案。
下面的功能给了我结果。
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, ' ')); })