def ScaleData(data, old_min, old_max, new_min, new_max):
 def ScalePoint(x):
  if (x is None):
   return None
  return ((scale * x) + translate)
 if (old_min == old_max):
  scale = 1
 else:
  scale = ((new_max - new_min) / float((old_max - old_min)))
 translate = (new_min - (scale * old_min))
 return map(ScalePoint, data)

def ScaleData ( data , old_min , old_max , new_min , new_max ) : def ScalePoint ( x ) : if ( x is None ) : return None return ( ( scale * x ) + translate ) if ( old_min == old_max ) : scale = 1 else : scale = ( ( new_max - new_min ) / float ( ( old_max - old_min ) ) ) translate = ( new_min - ( scale * old_min ) ) return map ( ScalePoint , data )
scale the input data so that the range old_min-old_max maps to new_min-new_max .