我对D3.js完全陌生。现在,我偶然发现了与该库的nest()有关的问题。
下面是我在D3 v4中nest()的代码。请注意,我在寻找time_in_hospital的平均值。问题是var check
没有提供我想要的数据。
var groupByAgeAndtime = d3.nest()
.key(function(d) { return d.age; })
.rollup(function(v) { return d3.mean(v, function(d) { return d.time_in_hospital; }); })
.object(datapoints);//specify the dataset used
var check = d3.min(groupByAgeAndtime, function(d){
return d.time_in_hospital;
});
console.log(groupByAgeAndtime);
console.log(check);
屏幕截图内正方形区域中的平均值是我想通过var check
获取的数据。
在屏幕截图中,为什么未定义var check
?
答案 0 :(得分:0)
check
是undefined
,因为d3.min要求传递一个数组以返回最小值。
d3.min:使用自然顺序返回给定数组中的最小值
正确计算了groupByAgeAndTime
之后,您只需将键传递给d3.min
并获取其最小值即可。这是带有示例数据集的代码:
var datapoints = [
{age: '0-10', time_in_hospital: 20},
{age: '10-20', time_in_hospital: 60},
{age: '20-30', time_in_hospital: 12},
{age: '30-40', time_in_hospital: 34},
{age: '0-10', time_in_hospital: 3},
{age: '10-20', time_in_hospital: 5},
{age: '20-30', time_in_hospital: 10},
];
var groupByAgeAndtime = d3.nest()
.key(function (d) { return d.age; })
.rollup(function(v) { return d3.mean(v, function(d) { return d.time_in_hospital; }); })
.object(datapoints);//specify the dataset used
var check = d3.min(Object.keys(groupByAgeAndtime), function(d){
return groupByAgeAndtime[d];
});
console.log(groupByAgeAndtime);
console.log(check);
<script src="https://d3js.org/d3.v4.min.js"></script>
希望这会有所帮助。