d3.js - 具有值数组的json数据的最大值和最小值

时间:2014-01-09 10:12:29

标签: d3.js

如何从JSON数据中找到最大值和最小值。我想要data1,data2 ... data(n)的最大checkins和Checkintimes。我的代码是:

 var max = d3.max(data, function(d) { return d.Checkintimes;} );
 var min = d3.min(data, function(d) { return d.Checkintimes;} );

我也试过这个选项

d3.json("Values.json", function(data) {



var maxmbt = d3.max(d3.values(data) );
var maxcheckins = d3.max(d3.values(data));

console.log(maxmbt);
console.log(maxcheckins);

xScale.domain([0,maxcheckins]);
xScale.domain([0,maxmbt]);

});

我有这种格式的json:

[
{
   "name":"data1",
    "checkins":[[1,0],[2,0],[3,0],[4,3],[5,0],[6,0],[7,0],[8,3],[9,0],[10,0],[11,0],[12,0]],
    "teamsize":[[1,0],[2,0],[3,0],[4,3],[5,0],[6,0],[7,0],[8,1],[9,0],[10,0],[11,0],[12,0]],
    "Checkintimes":[[1,0],[2,0],[3,0],[4,184],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,0],[12,0]]
},


{"name":"data2",


    "checkins":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,27],[12,12]],
    "teamsize":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,11],[12,11]],
    "Checkintimes":[[1,0],[2,0],[3,0],[4,0],[5,0],[6,0],[7,0],[8,0],[9,0],[10,0],[11,10],[12,12]]
}
]

目前当我使用返回值时是一个数组。不是单一价值。例如,在上述例子中,这里的最大值是27和Checkintimes - 184。

2 个答案:

答案 0 :(得分:6)

d3.max函数需要有一个获取单个值的访问器。您需要嵌套调用,因为您有嵌套数据:

var max = d3.max(data, function(d) {
  return d3.max(d.Checkintimes, function(e) { return d3.max(e); });
});

答案 1 :(得分:0)

试试这段代码:

<强> Fiddle

<强> JS

dataset.forEach(function(d, i) { 
  max= d3.max(d.checkins);
  min=d3.min(d.checkins);
  });