我有一个约 7500 个项目的列表,它们都有相似的签名:
{
revenue: integer,
title: string,
sector: string
}
收入将在 0 到 10 亿之间。我想构建一个规模,使得给定特定公司的收入......它返回其相对于以下“桶”的位置:
$0-5 Million
$5-10 Million
$10-25 Million
$25-50 Million
$50-100 Million
$100-250 Million
> $250 Million
我相信我应该能够通过 d3 中的量化或分位数比例来实现这一点,但是很难获得预期的结果。到目前为止,我有类似的东西:
var max_rev = 1000000000 // 1 Billion
scale = d3.scale.quantize().domain(_.range(max_rev)).range([5000000, 10000000, 25000000, 50000000, 100000000, 250000000])
一个明显的问题是调用 _.range(max_rev) 创建了一个 10 亿长的数组,所以我想知道如何更有效地做到这一点(比如 .domain([0, 1000000000])?)
定义此比例的最佳方法是什么,以便 scale(75000000) 将返回 50000000。一旦我有了它,我可以对照哈希检查它并返回正确的标签:
{
...
...
50000000: "$50-100 Million",
100000000: "$100-250 Million",
...
}
非常感谢!如果我可以提供任何其他信息,请告诉我。