【发布时间】:2015-07-10 09:16:11
【问题描述】:
我需要通过给出一组值来为地图上的图例生成值。 是否有任何 Java 库中的函数可以从值数组和计数值生成范围或隔间?比如:
Integer[] getIntervals(Number[] values , int count);
示例用法:
getIntervals([10, 33.5, 45.98, 62, 77,80 ], 5) 将返回 [10, 24, 38, 52, 64, 80]
这很容易由我自己编写,但它必须聪明地在图例上显示它。聪明的意思是生成对图例有意义的数字。我不知道如何用英语描述它,所以我附上一个屏幕截图,说明我的意思。
如果上述功能按照我想要的方式智能,它将返回:
[10, 30, 50, 70, 90] 或类似的东西。
这仍然是我可以自己写的东西,但也许这已经在某个地方完成了?我查看了 Apache Commons MathUtils 和 Apache Commons Math,但找不到我需要的东西。
编辑:我发现 Apache Commons 中有一个 Percentile 类,这似乎是我需要使用的,但我的数学太弱了。
【问题讨论】:
-
不清楚你在问什么。为什么上面的数组不比下面的数组好?你如何定义一个聪明的方法来做到这一点?据我了解,您需要一个生成数字列表的函数,每对邻居(从左到右)都比前一对有更大的差异。
-
您希望
getIntervals计算要在图例中使用的范围吗?您希望范围大小相等还是希望每个范围中的值数量尽可能均匀? -
是否存在符合您主观(且未公开)“聪明”标准的东西?可能,但可能不会。
标签: java math numbers range intervals