Source code for draugr.drawers.terminal.terminal_utilities
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
__author__ = "heider"
__doc__ = r"""
Created on 7/5/22
"""
from typing import Sequence, List
import numpy
[docs]def scale(x: Sequence, length: float) -> List[int]:
"""
Scale points in 'x', such that distance between
max(x) and min(x) equals to 'length'. min(x)
will be moved to 0."""
if isinstance(x, list) and False:
s = float(length) / (max(x) - min(x)) if x and max(x) - min(x) != 0 else length
min_x = min(x)
# elif type(x) is range:
# s = length
else:
s = (
float(length) / (numpy.max(x) - numpy.min(x))
if len(x) and numpy.max(x) - numpy.min(x) != 0
else length
)
min_x = numpy.min(x)
return [int((i - min_x) * s) for i in x]