我希望我的问题不会太难理解。在对数据使用nest()函数并将其分配给 var groupByAgeAndtime 后,我很难访问对象的值。我不知道如何直接访问该对象的值并将该值传递给d3.forceSimulation。
我尝试使用Object.keys(groupByAgeAndtime, function(d){ return groupByAgeAndTime[d];})
访问对象的值,但没有用。
问题出在这里
var groupByAgeAndtime = d3.nest()
.key(function(d) { return d.age; })
//.key(function(d) { return d.time_in_hospital; })
.rollup(function(v) {
return{
mean_time_in_hospital : d3.mean(v, function(d){ return d.time_in_hospital;})
} })
.object(datapoints);
在嵌套和汇总数据之后,我不知道如何访问 var groupByAgeAndtime 并将其传递给另一个变量的函数:
var simulation = d3.forceSimulation()
.force("x",d3.forceX(width/2).strength(0.05))
.force("y",d3.forceY(height/2).strength(0.05))
.force("collide", d3.forceCollide(function(d){
return radiusScale(d.groupByAgeAndtime) + 2;
}))
那我应该如何将嵌套数据传递给return radiusScale(d.groupByAgeAndtime) + 2;
?
这是我的小提琴代码:code in fiddle
如果某些专家能够回答我的问题,我将不胜感激。
答案 0 :(得分:0)
将d3.nest
数据转换回键值对数组
d3.map(datapoints).entries();
您必须自己进行排序,并且要注意,键是一个字符串,可能带有$
。