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