numberDisplay - 通过最大键过滤

我有一个dc.js仪表板具有按月/周期分组的历史人员,疾病等信息。仪表板的用户希望看到顶部数字显示的最近月份数据(例如人员总数,疾病发生率等)。numberDisplay - 通过最大键过滤

我的数据:

var data= [ 

{ "Month": "01/02/2014","Period": 201402,"Heads": 15123,"SchedHours":146000,"Sickness": 0,},

{ "Month": "01/03/2014","Period": 201403,"Heads": 15100,"SchedHours": 146000,"Sickness": 0,},

{ "Month": "01/04/2014","Period": 201404,"Heads": 14900,"SchedHours": 146000,"Sickness": 0,},

{ "Month": "01/05/2014","Period": 201405,"Heads": 14800,"SchedHours": 146000,"Sickness": 0,},

{ "Month": "01/06/2014","Period": 201406,"Heads": 14750,"SchedHours": 146000,"Sickness": 0,},

{ "Month": "01/07/2014","Period": 201407,"Heads": 14720,"SchedHours": 146000,"Sickness": 0,},

{ "Month": "01/08/2014","Period": 201408,"Heads": 14000,"SchedHours": 146000,"Sickness": 0,},

{ "Month": "01/09/2014","Period": 201409,"Heads": 13750,"SchedHours": 146000,"Sickness": 0,},

{ "Month": "01/10/2014","Period": 201410,"Heads": 13500,"SchedHours": 146000,"Sickness": 0,},

{ "Month": "01/11/2014","Period": 201411,"Heads": 13200,"SchedHours": 146000,"Sickness": 0,},

....]

我可以计算出如何在默认情况下做到这一点时,使用可变仪表板首次加载:

maxPeriod = dimPeriod.top(1)[0].Period; 

但我努力工作,如何更新上面的变量以更新numberDisplay,以始终过滤它以显示最大周期或月份的头部。

我目前使用展示戈登另一个问题好心提供的功能的最新数字“元首”的:

function choose_bin(group, key) { 

return {

value: function() {

return group.all().filter(kv => kv.key === key)[0].value;

}

}

}

我的组则是:

var latestMonth = choose_bin(groupHeads3, maxPeriod); 

和numberDisplay:

numberChart 

.group(latestMonth)

.valueAccessor(x => (x))

.formatNumber(d3.format(".0f"));

我有一个基本的jsfiddle,显示问题(只要应用过滤器,值为0):https://jsfiddle.net/kevinelphick/mzpoe555/2/

我打算做的是根据在折线图中过滤的最高时间段更新Heads值。我还希望包括最高期价值之前的月份,并提供两者之间的比较以显示趋势。

预先感谢您。

回答:

你只是没有在运行时计算足够的东西。每次查询组时,都需要计算maxPeriod及其后的所有内容。你可能会想要做这样的事情(如果你把它放到你的JSFiddle中,它可以工作:

var latestMonth = { 

all: function() {

maxPeriod = dimPeriod.top(1)[0].Period;

return [choose_bin(groupHeads3, maxPeriod).value()]

}

}

以上是 numberDisplay - 通过最大键过滤 的全部内容, 来源链接: utcz.com/qa/264611.html

回到顶部