【发布时间】:2009-08-28 21:38:38
【问题描述】:
我一直在从事一个需要用条形图填充价格结果的项目。该图表显示给定价格范围内的商品数量。例如,如果亚马逊上有 9 件商品的价格范围在 0 美元到 10 美元之间,那么 x 轴将显示 0 美元到 10 美元,而 y 轴将填充值 9。
我的条形图有 8 个条形,所有的价格范围都相似。 0-10 美元、10-20 美元、20-30 美元……等等。
我的问题是:定义这些单独点的最佳方法是什么?这些项目之间没有共同的价格范围,因此 x 轴不能是静态数字。它们必须在结果范围内动态计算。
因此,目前我正在按如下方式创建 x 轴点:
我取最低的结果:
@numbers[0] = results[0];
我拿最高的结果:
@numbers[8] = results[-1];
然后我求两者的中位数: @numbers[4] = (@numbers[0]+@numbers[8])/2;
然后我再重复这个过程 6 次
@numbers[2] = (@numbers[0]+@numbers[4])/2; @numbers[6] = (@numbers[4]+@numbers[8])/2; @numbers[1] = (@numbers[0]+@numbers[2])/2; @numbers[3] = (@numbers[2]+@numbers[4])/2; @numbers[5] = (@numbers[4]+@numbers[6])/2; @numbers[7] = (@numbers[6]+@numbers[8])/2;
这为我提供了我需要的结果,但它似乎非常重复,我想有更好的方法。
我尝试创建一个循环,但我无法以更简洁的方式编写它。
有没有更快的方法来做到这一点,或者可能是更符合 DRY 的方法?
【问题讨论】:
标签: ruby-on-rails graph dry median