我有6个图形条和价格
每个价格数将通过尊重min
和max
高度来表示其图形栏的高度。
我想要的是图表栏的高度不会低于或高于min
和max
值。
所以我的值为min = 55
和max = 110
price numbers
是:
通过哪种数学算法,我可以达到预期的效果? 它是某种动态可扩展条形图。
修饰
因此,价格表中的最小值和最大值将为:49(min price) => 55(min)
和1081 (max price) => 110(max)
答案 0 :(得分:8)
解决方案很简单:
ratio = (max-min)/(largest_item-smallest_item)
final_value = min_value + ratio*(value-smallest_item)
作为一种数学函数:
f(x,max,min,largest,smallest) = min + (max-min)/(largest-smallest)*(x-smallest)
where:
x : Input item's price
max: Maximum value (here, 110)
min: Minimum value (here, 55)
largest: Largest item in input (Here, 1081)
smallest: Smallest item in input (Here, 49)
一次检查,正如@amit正确指出:确保最大和最小的项目是不同的。
所以让x = 93.我们还有其他4个值。
f(x,max,min,largest,smallest) = min + (max-min)/(largest-smallest)*(x-smallest)
value = 55 + ((110-55)/(1081-49)) * (93-49)
value = 57.344961
此外,
f(93,110,55,1081,49) = 57.344961
f(49,110,55,1081,49) = 55
f(1081,110,55,1081,49) = 110
答案 1 :(得分:1)
功能:
[(x - min ) / (max-min)*55] + 55
确保您追求的界限 - 但您还应该考虑 - 图表应该显示什么?您希望读者从中了解什么?
为什么?
(x-min) / (max-min)
为[0,1]
提供范围min
- 0的数字,
1 max
。 [0,55]
的数字。[55,110]
中的数字 - 符合预期。(*)注意:对于max = min - 由于除0而导致上述失败,请手动处理这些情况。