一组数字的百分比

Percentage of a set of numbers

我被要求制作一个图表来显示每个页面上有多少用户。此图表将采用颜色编码,其中用户最多的页面将具有 100% 的不透明度,查看者最少的页面将具有 40% 的不透明度,而介于两者之间的页面将具有相应的不透明度。

所以,我有一组数字,我需要

数字可以是 1 或更大的任何整数。

所以给定 1000, 500, 100, 50

或者,给定 2, 1

或给出 1000, 1

或给出 7485、395、3

我希望这是有道理的。

我可以用什么方程来解决这个问题?

我知道得到的百分比只是 (# / largest_number) * 100 但我迷失了试图让它介于 100% 和 40% 之间

我能得到的最接近的是 ((#/largest_number) * 60) + 40,但假设 0 是最小的数字,并且在第一组数字 (50) 中我的最小数字是 43,而不是我需要的 40%。

提前致谢!

而不是用 (# / largest_number) * 100x = ((# - lowest_number) / (largest_number - lowest_number) * 100

这是一个基本的归一化函数 - see here for details

这样 largest number 将始终映射到 1,而 lowest_number 将始终映射到 0,然后您可以使用函数 (x * 60) + 40