Быстрый пример на Python с использованием аффинного преобразования:
list = [3.16, 4.72, 6.44, 8.25, 3.76, 4.87, 5.76, 6.5, 7.32]
# find the minimum value and range, and add 1% padding
range_value = max(list) - min(list)
range_value = range_value + range_value/50
min_value = min(list) - range_value/100
# subtract the minimum value and divide by the range
for index, item in enumerate(list):
list[index] = (item - min_value) / range_value
print list
Дает результат:
[0.010000000000000026, 0.310473824107246, 0.64176547632805592, 0.99039215686274518, 0.1255668554258639, 0.33936553796371205, 0.51078970684541003, 0.65332216187064218, 0.81126353095265591]
Конечно, вы можете изменить количество отступов так, чтобы оно было минимальным - для диапазона вы захотите добавить в два раза больше того, что делаете для минимального значения, потому что вам нужно добавить отступ к каждый конец диапазона.