我第一次使用交叉过滤器来制作仪表板,但我遇到了一个问题。
我需要制作一个图表,该图表将按日期维度返回已用存储量。由于它是可移动存储,因此我拥有的网络服务仅给我每日消耗的存储空间,而不是总数。
所以如果我有这样的东西:
[
{"jobName": "A", "dataLength": 368, "date": "2019-01-05"},
{"jobName": "A", "dataLength": 1420, "date": "2019-01-06"},
{"jobName": "B", "dataLength": 553, "date": "2019-01-06"},
{"jobName": "A", "dataLength": 156, "date": "2019-01-08"},
{"jobName": "B", "dataLength": 937, "date": "2019-01-08"},
{"jobName": "B", "dataLength": 423, "date": "2019-01-09"},
{"jobName": "B", "dataLength": 223, "date": "2019-01-10"}
]
它将返回如下内容:
[
{"key": "2019-01-05", "value": 368},
{"key": "2019-01-06", "value": 2341},
{"key": "2019-01-08", "value": 3434},
{"key": "2019-01-09", "value": 3857},
{"key": "2019-01-10", "value": 4080}
]
有没有人知道如何实现这一目标?
谢谢
您可以使用假组在读取组时累积值:
function accumulate_group(source_group) {
return {
all:function () {
var cumulate = 0;
return source_group.all().map(function(d) {
cumulate += d.value;
return {key:d.key, value:cumulate};
});
}
};
}
var group = dimension.group().reduceSum(d => d.dataLength);
chart.group(accumulate_group(group));
感谢@Xavier杜图伊特!