gpt4 book ai didi

javascript - d3.js 将数据集映射到具有不同键的新数据集

转载 作者:搜寻专家 更新时间:2023-10-30 20:25:34 24 4
gpt4 key购买 nike

我有以下数据集:

dataset = [
{
'date': '2015-11-11T19:15:00.000Z'
'cpu': 13
'ram': 128
'sessions': 1367
}
{
'date': '2015-11-11T19:16:00.000Z'
'cpu': 70
'ram': 128
'sessions': 3567
}
{
'date': '2015-11-11T19:17:00.000Z'
'cpu': 25
'ram': 250
'sessions': 567
}
{
'date': '2015-11-11T19:18:00.000Z'
'cpu': 20
'ram': 120
'sessions': 4567
}
]

..我想创建一个新的数据集如下:

newdataset = [
{ 'cpu': [
{'date': '2015-11-11T19:15:00.000Z', 'value':13},
{'date': '2015-11-11T19:16:00.000Z', 'value':70}
]
}
{ 'ram': [
{'date': '2015-11-11T19:15:00.000Z', 'value':128},
{'date': '2015-11-11T19:16:00.000Z', 'value':128}
]
}
{ 'sessions': [
{'date': '2015-11-11T19:15:00.000Z', 'value':1367},
{'date': '2015-11-11T19:16:00.000Z', 'value':3567}
]
}
]

虽然我对 d3.js 有很好的理解,但我以前从未接触过数据库。到目前为止,我设法做到了这一点:

multiplegroups = d3.keys(dataset[0])
.filter((key) ->
key != 'date'
)

multiplegroups2 = dataset.map (o) ->
o.cpu

通过上面的两个函数我可以得到

Array [ "cpu", "ram", "sessions" ]

Array [ 13, 70, 25, 20 ]

剩下要做的是以某种方式为每个键运行第二个函数 x3 次,并将这些值数组附加到第一个函数生成的数组中的键。

我尝试这样做的原因是为了一个小的倍数图表。我的意思是我可以使用第二个函数手动生成 3 个不同的数组并单独使用它们,但我确信有更好/更快的方法来做到这一点。

最佳答案

在 D3 中你可以这样做:

var dataset = [{
'date': '2015-11-11T19:15:00.000Z',
'cpu': 13,
'ram': 128,
'sessions': 1367
}, {
'date': '2015-11-11T19:16:00.000Z',
'cpu': 70,
'ram': 128,
'sessions': 3567
}, {
'date': '2015-11-11T19:17:00.000Z',
'cpu': 25,
'ram': 250,
'sessions': 567
}, {
'date': '2015-11-11T19:18:00.000Z',
'cpu': 20,
'ram': 120,
'sessions': 4567
}],



multiplegroups = d3.keys(dataset[0])
.filter(function(key) {
return key != "date"; //get all not date key
}).map(function(d) {
var ob = {};//iterate on non date keys
ob[d] = dataset.map(function(d1) {
//iterate on full data to pluck our desired value
return {
date: d1.date,
value: d1[d]
};
});
return ob;
});

document.write('<pre>' + JSON.stringify(multiplegroups, 0, 4) + '</pre>');
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.4.11/d3.min.js"></script>

关于javascript - d3.js 将数据集映射到具有不同键的新数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36062763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com