我有一个对象数组,称为dataArray
,其中一个对象如下所示:
{
id,
x,
y
}
现在我想通过使用 d3 获得该数组的下分位数。我想到了这样的事情:
quartile = d3.quantile(dataArray, 0.25, function(d) {return d.y})
但不幸的是,此方法没有访问器选项。如何从对象数组中获取属性的分位数?提前致谢
最佳答案
我找到了解决问题的方法。我需要获取仅包含对象数组的某个属性的数组,因此我不需要分位数方法中的访问器。
// get an array of just the y property values
var keyArray = dataArray.map(function(item) { return item["y"]; });
// calculate a lower quantile of this array
var quantile_y = d3.quantile(keyArray, 0.25);
更新:
为了正常工作,必须对赋予d3.quantile()
的数组进行排序。例如
keyArray.sort(d3.ascending);
关于javascript - 如何获取对象数组的分位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31612640/