我有以下数据结构,并且我以几张图表的形式显示信息。我想有一个时间图表,显示X轴上的天数,以及Y天那天的最小min_val。
date type value min_val_day
01/12/13 10:00:00 A 10 10
01/12/13 12:00:00 A 20 10
02/12/13 10:00:00 A 15 15
02/12/13 11:00:00 A 28 15
我不想reduceCount或reduceSum值,我希望结果是我表中的实际值。所以01/12/13将显示Y轴值为10,02 / 12/13将为15。
我确信这很简单,但我无法理解它!这就是我现在使用的,它不正确,因为它是reduceSum
var mindayDim = facts.dimension(function (d) {return d3.time.day(d.date); });
var mindayDimGroup = mindayDim.group().reduceSum(function (d) { return d.min_val_day; });
感谢您的帮助!
答案 0 :(得分:1)
假设你的意思是MAX值,这是一个例子:
priceGroup = priceDimension.group().reduce(
function (p, v) {
++p.count;
if(p.maxCompetitivePrice < v.competitive_price)
p.maxCompetitivePrice = v.competitive_price;
return p;
},
null,
function () {
return { count:0, maxCompetitivePrice: 0};
}
);
传递给reduce的第二个函数是null,这会强制分组在reduce上重新计算整个数据集。这对我的小数据集来说是可以接受的,但应谨慎使用。
另一种方法是存储某种排序的javascript结构,并在添加和删除时维护排序的结构。