如何在d3.js中获取数据集中给定范围内的最小值和最大值

如何在d3.js中获取数据集中给定范围内的最小值和最大值,d3.js,crossfilter,D3.js,Crossfilter,我有以下格式的数据集: [{ x: "2014-01-01", y: 1223 }, ... {x: "2017-01-01", y: 143 } ]; 例如,给定一个范围 ["2015-01-01","2016-01-01"] 我想找出这两个范围之间的最小和最大y值 我怎样才能在d3中做到这一点 目前,我使用以下函数来查找最小值/最大值 d3.min(formattedData, function(d) { return d.y; }), d3.max(forma

我有以下格式的数据集:

[{
  x: "2014-01-01",
  y: 1223 
},
 ...
 {x: "2017-01-01",
  y: 143
 }
 ];
例如,给定一个范围

["2015-01-01","2016-01-01"]
我想找出这两个范围之间的最小和最大y值

我怎样才能在d3中做到这一点

目前,我使用以下函数来查找最小值/最大值

d3.min(formattedData, function(d) { return d.y; }), 

d3.max(formattedData, function(d) { return d.y; });
我不知道如何在那里应用这个范围

日期已经被解析了,所以不用担心这一部分

我将以下函数应用于所有x值,即parseDate.parse(x)


您可以从数组中筛选元素,以适应所需的日期范围:

inputArray.filter(d => d.x > "2015-01-01" && d.x < "2016-01-01")
要最终获得结果数组的最小值或最大值,请执行以下操作:

d3.min(..)
其中:

var输入=[
{
x:“2014-01-01”,
y:1223
},
{
x:“2015-06-01”,
y:12
},
{
x:“2015-07-01”,
y:1025
},
{
x:“2015-08-01”,
y:125
},
{
x:“2017-01-01”,
y:143
}
]
变量输出=输入
.过滤器(d=>d.x>“2015-01-01”和d.x<“2016-01-01”)
.map(d=>d.y);
console.log(“过滤器/映射数组:”+输出);
日志(“min:+d3.min(输出));
log(“max:+d3.max(输出))

您可以从数组中筛选元素,以适应所需的日期范围:

inputArray.filter(d => d.x > "2015-01-01" && d.x < "2016-01-01")
要最终获得结果数组的最小值或最大值,请执行以下操作:

d3.min(..)
其中:

var输入=[
{
x:“2014-01-01”,
y:1223
},
{
x:“2015-06-01”,
y:12
},
{
x:“2015-07-01”,
y:1025
},
{
x:“2015-08-01”,
y:125
},
{
x:“2017-01-01”,
y:143
}
]
变量输出=输入
.过滤器(d=>d.x>“2015-01-01”和d.x<“2016-01-01”)
.map(d=>d.y);
console.log(“过滤器/映射数组:”+输出);
日志(“min:+d3.min(输出));
log(“max:+d3.max(输出))

如果您的列表非常长,并且您不想多次循环它,您可以在一次调用中完成这一切:


变量输入=[{
x:新日期(“2014-01-01”),
y:1223
}, {
x:新日期(“2015-06-01”),
y:12
}, {
x:新日期(“2015-07-01”),
y:1025
}, {
x:新日期(“2015-08-01”),
y:125
}, {
x:新日期(“2017-01-01”),
y:143
}],
minDate=新日期(“2015-01-01”),
maxDate=新日期(“2016-01-01”);
var minMax=d3.范围(输入,函数(d){
如果(d.x=maxDate){
返回NaN;
}
返回d.y;
})
console.log(minMax);

如果您的列表非常长,并且您不想多次循环它,您可以在一次调用中完成这一切:


变量输入=[{
x:新日期(“2014-01-01”),
y:1223
}, {
x:新日期(“2015-06-01”),
y:12
}, {
x:新日期(“2015-07-01”),
y:1025
}, {
x:新日期(“2015-08-01”),
y:125
}, {
x:新日期(“2017-01-01”),
y:143
}],
minDate=新日期(“2015-01-01”),
maxDate=新日期(“2016-01-01”);
var minMax=d3.范围(输入,函数(d){
如果(d.x=maxDate){
返回NaN;
}
返回d.y;
})
console.log(minMax);