diff --git a/flake.nix b/flake.nix index db5a916..a0afac6 100644 --- a/flake.nix +++ b/flake.nix @@ -62,6 +62,7 @@ inherit pname version; hash = "sha256-jqj8X6H1N5mJQ4OrY5ANqRB0YJByqg/bNneEALWmH1A="; }; + patches = ./patches/0001-Add-option-for-setting-min-range-span-for-y-axis.patch; buildInputs = [ pkgs.python3Packages.poetry-core ]; propagatedBuildInputs = with pkgs.python3Packages; [ pyqtgraph numpy ]; }; diff --git a/patches/0001-Add-option-for-setting-min-range-span-for-y-axis.patch b/patches/0001-Add-option-for-setting-min-range-span-for-y-axis.patch new file mode 100644 index 0000000..eeaad4d --- /dev/null +++ b/patches/0001-Add-option-for-setting-min-range-span-for-y-axis.patch @@ -0,0 +1,61 @@ +From 59a14e06320fd42d56cd7d953da337c0fe4357fa Mon Sep 17 00:00:00 2001 +From: linuswck +Date: Tue, 22 Oct 2024 17:30:36 +0800 +Subject: [PATCH] Add option for setting min range span for y-axis + +--- + pglive/sources/live_axis_range.py | 17 ++++++++++++++++- + 1 file changed, 16 insertions(+), 1 deletion(-) + +diff --git a/pglive/sources/live_axis_range.py b/pglive/sources/live_axis_range.py +index afbd806..9b62ba5 100644 +--- a/pglive/sources/live_axis_range.py ++++ b/pglive/sources/live_axis_range.py +@@ -5,7 +5,7 @@ from typing import Optional, List, Tuple, Dict + class LiveAxisRange: + + def __init__(self, roll_on_tick: int = 1, offset_left: float = 0., offset_right: float = 0., offset_top: float = 0., +- offset_bottom: float = 0., fixed_range: Optional[List[float]] = None) -> None: ++ offset_bottom: float = 0., fixed_range: Optional[List[float]] = None, min_y_range_span: Optional[List[float]] = [None, None]) -> None: + self.roll_on_tick = roll_on_tick + self.offset_left = offset_left + self.offset_right = offset_right +@@ -21,6 +21,7 @@ class LiveAxisRange: + self.final_x_range = [0., 0.] + self.final_y_range = [0., 0.] + self.ignored_data_connectors: List[str] = [] ++ self.min_y_range_span = min_y_range_span + + def get_x_range(self, data_connector, tick: int) -> List[float]: + x, _ = data_connector.plot.getData() +@@ -116,6 +117,13 @@ class LiveAxisRange: + # therefore in that case we must set some range + final_range[0] -= 0.4 + final_range[1] += 0.4 ++ ++ if self.min_y_range_span[0] is not None: ++ final_range[0] = min(self.min_y_range_span[0], final_range[0]) ++ ++ if self.min_y_range_span[1] is not None: ++ final_range[1] = max(self.min_y_range_span[1], final_range[1]) ++ + if self.final_y_range != final_range: + self.final_y_range = final_range + return self.final_y_range +@@ -139,6 +147,13 @@ class LiveAxisRange: + # therefore in that case we must set some range + final_range[0] -= 0.4 + final_range[1] += 0.4 ++ ++ if self.min_y_range_span[0] is not None: ++ final_range[0] = min(self.min_y_range_span[0], final_range[0]) ++ ++ if self.min_y_range_span[1] is not None: ++ final_range[1] = max(self.min_y_range_span[1], final_range[1]) ++ + if self.final_y_range != final_range: + self.final_y_range = final_range + return self.final_y_range +-- +2.44.1 +