From: Scott Date: Mon, 31 Jan 2022 17:55:30 +0000 (-0800) Subject: Make histogram auto-format labels. X-Git-Url: https://wannabe.guru.org/gitweb/?a=commitdiff_plain;h=f41c2bbae228ea2305e7530148c4d2dca5131200;p=python_utils.git Make histogram auto-format labels. --- diff --git a/histogram.py b/histogram.py index 7be643f..87ef773 100644 --- a/histogram.py +++ b/histogram.py @@ -67,7 +67,7 @@ class SimpleHistogram(Generic[T]): all_true = all_true and self.add_item(item) return all_true - def __repr__(self, width: int = 80, *, label_formatter: str = '%5s') -> str: + def __repr__(self, *, width: int = 80, label_formatter: str = None) -> str: from text_utils import bar_graph max_population: Optional[int] = None @@ -92,6 +92,13 @@ class SimpleHistogram(Generic[T]): end = bucket[1] if highest_end is None or end > highest_end: highest_end = end + if label_formatter is None: + if type(start) == int and type(end) == int: + label_formatter = '%d' + elif type(start) == float and type(end) == float: + label_formatter = '%.2f' + else: + label_formatter = '%s' label = f'[{label_formatter}..{label_formatter}): ' % (start, end) label_width = len(label) if max_label_width is None or label_width > max_label_width: