我有一个如下所示的数组:
series = [ [ { "x":2013-01-01, "y":100 }, { "x":2013-01-02, "y":300 } ...],
[ { "x":2013-01-01, "y":1000 }, { "x":2013-01-02, "y":300 } ...],...
]
如何使用d3获取“x”和“y”的最小值和最大值?
我知道对于像下面这样的单个数组:
miniseries = [ { "x":2013-01-01, "y":100 }, { "x":2013-01-02, "y":300 } ...]
我会使用例如以下句子:
minX = d3.min(miniseries, function(d){return d.x});
但不确定如何处理数组而不是单个数组。
答案 0 :(得分:2)
var minX = d3.min(series, function (ms) {
return d3.min(ms, function (d) {
return d.y
})
});
答案 1 :(得分:0)
只需迭代数据数组并将值存储在两个数组中(每个轴一个)。然后,您可以按如下方式获取两个轴的最小值/最大值:
查找最小/最大日期(x轴):
// sample data
var dates = [
new Date("2013-01-01"),
new Date("2013-02-01"),
new Date("2013-03-01")
];
var minDate = new Date(Math.min.apply(null, dates));
var maxDate = new Date(Math.max.apply(null, dates));
要查找最小/最大值(y轴):
// sample data
var valuesAxisY = [100, 300, 400, 50];
var min = Math.min.apply(null, valuesAxisY),
var max = Math.max.apply(null, valuesAxisY);